Yaygın kelime dizilerini bulma
Daha önce uzunluğu üç olan kelime dizilerini ("3-tuple") bulan bir sorgunun nasıl oluşturulacağını görmüştük. Metin belgesindeki en yaygın 3-tuple'ları bulmak için bu sorguyu klasik bir SQL sorgusunda alt sorgu olarak kullandık. Şimdi benzer bir görevi en yaygın 5-tuple'ları bulmak için yapacaksın.
text_df DataFrame'i hazır. Sherlock Holmes metninin ilk beş bölümünü içeriyor. Şu sütunlara sahip: word, id, part, title. id sütunu bir tamsayıdır; belgede daha sonra gelen bir kelimenin id'si, daha önce gelen bir kelimeninkinden daha büyüktür. part sütunu veriyi bölümlere ayırır. text_df DataFrame'i ayrıca text adlı geçici tablo olarak da kaydedildi. Amacımız, her satırın bir 5-tuple'a karşılık geldiği ve bu tuple'ın veri kümesinde kaç kez geçtiğini belirten bir count değeri olan bir veri kümesi oluşturmaktır.
Bu egzersiz
Python ile Spark SQL'e Giriş
kursunun bir parçasıdırEgzersiz talimatları
- Veri kümesindeki en yaygın 10 adet 5-tuple'ı bulan
queryadlı bir sorgu oluştur.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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()