Sequências comuns de palavras

Introdução ao Spark SQL em Python

Mark Plutowski

Data Scientist

Treinamento

Introdução ao Spark SQL em Python

Previsão

Introdução ao Spark SQL em Python

Previsão da última palavra

Introdução ao Spark SQL em Python

Sequência

Introdução ao Spark SQL em Python

Último da sequência

Introdução ao Spark SQL em Python

A rápida raposa marrom

Introdução ao Spark SQL em Python

Colchete de frase

Introdução ao Spark SQL em Python

Outro tipo de agregação

Introdução ao Spark SQL em Python

Vídeos

Introdução ao Spark SQL em Python

Dados categóricos

Introdução ao Spark SQL em Python

Categórico vs. ordinal

  • Categórico: he, hi, she, that, they
  • Ordinal: 1, 2, 3, 4, 5
Introdução ao Spark SQL em Python

Análise de sequência

Introdução ao Spark SQL em Python

Palavra anterior e seguinte

Introdução ao Spark SQL em Python

Triplas (3-tuplas)

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
""" 
Introdução ao Spark SQL em Python

Função de janela como subconsulta 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()
Introdução ao Spark SQL em Python

Função de janela como subconsulta – saída

+-----+-----+-----+-----+
|   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|
|.....|.....|.....|.....|
Introdução ao Spark SQL em Python

Triplas mais frequentes

+-----+-----+-----+-----+
|   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|
+-----+-----+-----+-----+
Introdução ao Spark SQL em Python

Outro tipo de agregação

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)
Introdução ao Spark SQL em Python

Outro tipo de agregação

+-------------------+-------------------+---------------+------+
|                 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|
+-------------------+-------------------+---------------+------+
Introdução ao Spark SQL em Python

Vamos praticar!

Introdução ao Spark SQL em Python

Preparing Video For Download...