Encontrando sequências de palavras comuns
Antes, vimos como criar uma consulta que encontra sequências de palavras de comprimento três ("trios" ou "3-tuples"). Usamos essa consulta como subconsulta em uma consulta SQL tradicional para encontrar os 3-tuples mais comuns no documento de texto. Agora, você fará uma tarefa semelhante para encontrar os 5-tuples mais comuns.
O DataFrame text_df está disponível. Ele contém os cinco primeiros capítulos do texto de Sherlock Holmes. Possui as colunas: word, id, part, title. A coluna id é um inteiro tal que uma palavra que aparece depois no documento tem um id maior do que uma palavra que aparece antes. A coluna part separa os dados por capítulos. O DataFrame text_df também está registrado como uma tabela temporária chamada text. Nosso objetivo é criar um conjunto de dados em que cada linha corresponda a um 5-tuple, com um count indicando quantas vezes a tupla ocorreu no conjunto de dados.
Este exercício faz parte do curso
Introdução ao Spark SQL em Python
Instruções do exercício
- Crie uma consulta
queryque encontre os 10 5-tuples mais comuns no conjunto de dados.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Find the top 10 sequences of five words
query = """
SELECT w1, w2, w3, w4, w5, COUNT(*) AS count FROM (
SELECT word AS w1,
LEAD(____) OVER(____ ) AS w2,
____ AS w3,
____ AS w4,
____ AS w5
FROM text
)
GROUP BY w1, w2, w3, w4, w5
ORDER BY count DESC
LIMIT ____
"""
df = spark.sql(query)
df.show()