Začněte nyníZačněte zdarma

Hledání nejčastějších slovních sekvencí

Dříve jsme si ukázali, jak sestavit dotaz, který hledá slovní sekvence délky tři ("3-tice"). Tento dotaz jsme pak použili jako poddotaz v klasickém SQL dotazu k nalezení nejčastějších 3-tic v textovém dokumentu. Nyní provedeš podobný úkol – tentokrát pro nalezení nejčastějších 5-tic.

K dispozici máš DataFrame text_df, který obsahuje prvních pět kapitol textu o Sherlocku Holmesovi. DataFrame má sloupce: word, id, part, title. Sloupec id je celé číslo – platí, že slovo, které se v dokumentu vyskytuje později, má větší id než slovo před ním. Sloupec part rozděluje data do kapitol. DataFrame text_df je také zaregistrován jako dočasná tabulka text. Cílem je vytvořit dataset, kde každý řádek odpovídá jedné 5-tici a obsahuje sloupec count udávající, kolikrát se daná 5-tice v datasetu vyskytla.

Toto cvičení je součástí kurzu

Úvod do Spark SQL v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř dotaz query, který najde 10 nejčastějších 5-tic v datasetu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód