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, kursun bir parçasıdır
Python ile Spark SQL'e Giriş
Egzersiz talimatları
- Veri kümesindeki en yaygın 10 adet 5-tuple'ı bulan
queryadlı bir sorgu oluştur.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()