Поширені послідовності слів

Вступ до Spark SQL у Python

Mark Plutowski

Data Scientist

Навчання

Вступ до Spark SQL у Python

Прогнозування

Вступ до Spark SQL у Python

Прогноз кінцевого слова

Вступ до Spark SQL у Python

Послідовність

Вступ до Spark SQL у Python

Останнє в послідовності

Вступ до Spark SQL у Python

The quick brown fox

Вступ до Spark SQL у Python

Дужки речення

Вступ до Spark SQL у Python

Інший тип агрегації

Вступ до Spark SQL у Python

Відео

Вступ до Spark SQL у Python

Категоріальні дані

Вступ до Spark SQL у Python

Категоріальні vs порядкові

  • Категоріальні: he, hi, she, that, they
  • Порядкові: 1, 2, 3, 4, 5
Вступ до Spark SQL у Python

Аналіз послідовностей

Вступ до Spark SQL у Python

Попереднє та наступне слово

Вступ до Spark SQL у Python

3-ки (тріади)

query3 = """
   SELECT 
   id,
   word AS w1,
   LEAD(word,1) OVER(PARTITION BY part ORDER BY id ) AS w2,
   LEAD(word,2) OVER(PARTITION BY part ORDER BY id ) AS w3
   FROM df
""" 
Вступ до Spark SQL у Python

Функція вікна SQL як підзапит

query3agg = """
SELECT w1, w2, w3, COUNT(*) as count FROM (
   SELECT 
   word AS w1,
   LEAD(word,1) OVER(PARTITION BY part ORDER BY id ) AS w2,
   LEAD(word,2) OVER(PARTITION BY part ORDER BY id ) AS w3
   FROM df
)
GROUP BY w1, w2, w3 
ORDER BY count DESC
""" 

spark.sql(query3agg).show()
Вступ до Spark SQL у Python

Функція вікна SQL як підзапит — результат

+-----+-----+-----+-----+
|   w1|   w2|   w3|count|
+-----+-----+-----+-----+
|  one|   of|  the|   49|
|    i|think| that|   46|
|   it|   is|    a|   46|
|   it|  was|    a|   45|
| that|   it|  was|   38|
|  out|   of|  the|   35|
|.....|.....|.....|.....|
Вступ до Spark SQL у Python

Найчастіші тріади слів

+-----+-----+-----+-----+
|   w1|   w2|   w3|count|
+-----+-----+-----+-----+
|  one|   of|  the|   49|
|    i|think| that|   46|
|   it|   is|    a|   46|
|   it|  was|    a|   45|
| that|   it|  was|   38|
|  out|   of|  the|   35|
| that|    i| have|   35|
|there|  was|    a|   34|
|    i|   do|  not|   34|
| that|   it|   is|   33|
| that|   he|  was|   30|
| that|   he|  had|   30|
| that|    i|  was|   28|
+-----+-----+-----+-----+
Вступ до Spark SQL у Python

Інший тип агрегації

query3agg = """
SELECT w1, w2, w3, length(w1)+length(w2)+length(w3) as length FROM (
   SELECT 
   word AS w1,
   LEAD(word,1) OVER(PARTITION BY part ORDER BY id ) AS w2,
   LEAD(word,2) OVER(PARTITION BY part ORDER BY id ) AS w3
   FROM df
   WHERE part <> 0 and part <> 13
)
GROUP BY w1, w2, w3 
ORDER BY length DESC
""" 

spark.sql(query3agg).show(truncate=False)
Вступ до Spark SQL у Python

Інший тип агрегації

+-------------------+-------------------+---------------+------+
|                 w1|                 w2|             w3|length|
+-------------------+-------------------+---------------+------+
|comfortable-looking|           building|    two-storied|    38|
|         widespread|comfortable-looking|       building|    37|
|      extraordinary|      circumstances|      connected|    35|
|      simple-minded|      nonconformist|      clergyman|    35|
|       particularly|          malignant|  boot-slitting|    34|
|       unsystematic|        sensational|     literature|    33|
|       oppressively|        respectable|     frock-coat|    33|
|         relentless|        keen-witted|   ready-handed|    33|
|   travelling-cloak|                and|  close-fitting|    32|
|        ruddy-faced|      white-aproned|       landlord|    32|
|  fellow-countryman|            colonel|       lysander|    32|
+-------------------+-------------------+---------------+------+
Вступ до Spark SQL у Python

Давайте потренуємось

Вступ до Spark SQL у Python

Preparing Video For Download...