Zacznij terazZacznij za darmo

Wyszukiwanie popularnych sekwencji słów

Wcześniej zobaczyłeś, jak utworzyć zapytanie wyszukujące sekwencje słów o długości trzech elementów ("3-krotki"). Tego zapytania użyliśmy jako podzapytania w tradycyjnym zapytaniu SQL, aby znaleźć najczęstsze 3-krotki w dokumencie tekstowym. Teraz wykonasz podobne zadanie, aby znaleźć najczęstsze 5-krotki.

Dostępny jest DataFrame text_df zawierający pięć pierwszych rozdziałów tekstu o Sherlocku Holmesie. Ma on kolumny: word, id, part, title. Kolumna id jest liczbą całkowitą – im późniejsze słowo w dokumencie, tym większa wartość id. Kolumna part dzieli dane na rozdziały. DataFrame text_df jest również zarejestrowany jako tabela tymczasowa o nazwie text. Naszym celem jest utworzenie zbioru danych, w którym każdy wiersz odpowiada jednej 5-krotce i zawiera kolumnę count wskazującą, ile razy dana krotka wystąpiła w zbiorze danych.

To ćwiczenie jest częścią kursu

Wprowadzenie do Spark SQL w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz zapytanie query, które znajdzie 10 najczęstszych 5-krotek w zbiorze danych.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod