IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una query query che 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()
Modifica ed esegui il codice