Trovare sequenze di parole comuni
In precedenza abbiamo visto come creare una query che trovi sequenze di parole di lunghezza tre ("3-tuples"). Abbiamo usato quella query come sottoquery in una query SQL tradizionale per trovare le 3-tuples più comuni nel documento di testo. Ora eseguirai un compito simile per trovare le 5-tuples più comuni.
Il DataFrame text_df è disponibile. Contiene i primi cinque capitoli del testo di Sherlock Holmes. Ha le colonne: word, id, part, title. La colonna id è un intero tale che una parola che compare più avanti nel documento ha un id maggiore rispetto a una parola che compare prima. La colonna part separa i dati in capitoli. Il DataFrame text_df è anche registrato come tabella temporanea chiamata text. Il nostro obiettivo è creare un insieme di dati in cui ogni riga corrisponde a una 5-tuple, con un count che indica quante volte la tupla è comparsa nell’insieme di dati.
Questo esercizio fa parte del corso
Introduzione a Spark SQL in Python
Istruzioni dell'esercizio
- Crea una query
queryche trovi le 10 5-tuples più comuni nell’insieme di dati.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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, w1, w2, w3, w4, w5
LIMIT ____
"""
df = spark.sql(query)
df.show()