Veelvoorkomende woordreeksen vinden
Eerder zagen we hoe je een query maakt die woordreeksen van lengte drie ("3-tuples") vindt. Die query gebruikten we als subquery in een traditionele SQL-query om de meest voorkomende 3-tuples in het tekstdocument te vinden. Nu ga je iets soortgelijks doen om de meest voorkomende 5-tuples te vinden.
DataFrame text_df is beschikbaar. Het bevat de eerste vijf hoofdstukken van de Sherlock Holmes-tekst. Het heeft de kolommen: word, id, part, title. De kolom id is een geheel getal waarbij een woord dat later in het document voorkomt een grotere id heeft dan een woord dat eerder voorkomt. De kolom part splitst de gegevens in hoofdstukken. De DataFrame text_df is ook geregistreerd als tijdelijke tabel met de naam text. Ons doel is een gegevensset te maken waarbij elke rij overeenkomt met een 5-tuple, met een count die aangeeft hoe vaak de tuple in de gegevensset voorkwam.
Deze oefening maakt deel uit van de cursus
Introductie tot Spark SQL in Python
Oefeninstructies
- Maak een query
querydie de 10 meest voorkomende 5-tuples in de gegevensset vindt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()