尋找常見的詞序列
先前我們已示範如何撰寫查詢,找出長度為 3 的詞序列(「3-tuples」)。 我們把這個查詢當成子查詢,放進傳統的 SQL 查詢裡,來找出文字文件中最常見的 3-tuples。 現在你要做相同的事情,但目標是找出最常見的 5-tuples。
已提供 DataFrame text_df。它包含《福爾摩斯》前五章的文本,欄位有:word、id、part、title。id 欄位是整數,文件中較後面的詞會有比前面詞更大的 id。part 欄位用來區分章節。DataFrame text_df 也已註冊為名為 text 的暫時資料表。我們的目標是建立一個資料集,其中每一列對應到一個 5-tuple,並有一個 count 指出該 tuple 在資料集中出現的次數。
本練習屬於課程
Python Spark SQL 入門
練習說明
- 建立一個查詢
query,找出資料集中最常見的 10 個 5-tuples。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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()