Kom igångKom igång gratis

Hitta vanliga ordsekvenser

Tidigare såg vi hur man skapar en fråga som hittar ordsekvenser av längd tre ("3-tupler"). Vi använde den frågan som en underfråga i en traditionell SQL-fråga för att hitta de vanligaste 3-tuplerna i textdokumentet. Nu ska du utföra en liknande uppgift för att hitta de vanligaste 5-tuplerna.

DataFrame text_df är tillgänglig. Den innehåller de första fem kapitlen av Sherlock Holmes-texten och har kolumnerna: word, id, part, title. Kolumnen id är ett heltal där ett ord som kommer senare i dokumentet har ett större id än ett ord som kommer tidigare. Kolumnen part delar upp data i kapitel. DataFrame text_df är också registrerad som en temporär tabell med namnet text. Målet är att skapa en datamängd där varje rad motsvarar en 5-tupel, med ett count som anger hur många gånger tupeln förekommer i datamängden.

Den här övningen är en del av kursen

Introduktion till Spark SQL i Python

Visa kurs

Övningsinstruktioner

  • Skapa en fråga query som hittar de 10 vanligaste 5-tuplerna i datamängden.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod