Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een query query die 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()
Code bewerken en uitvoeren