始める無料で始める

よく出現する単語列を見つける

これまでに、長さ3の単語列("3-tuple")を見つけるクエリの作り方を確認しました。 そのクエリを従来のSQLクエリのサブクエリとして使い、テキスト文書内で最も頻出する3-tupleを特定しました。 ここでは同様の手順で、最も頻出する5-tupleを見つけます。

DataFrame text_df が用意されています。これはシャーロック・ホームズのテキストの最初の5章を含みます。列は wordidparttitle です。id 列は整数で、文書中で後に現れる単語ほど大きな id を持ちます。part 列は章ごとにデータを分けます。DataFrame text_df は一時テーブル text としても登録されています。目的は、各行が1つの5-tupleに対応し、そのタプルがデータセット内で出現した回数を示す count を持つデータセットを作成することです。

この演習はコースの一部です

Pythonで学ぶ Spark SQL 入門

コースを見る

演習の手順

  • データセット内で最も頻出する5-tupleを 10 件見つけるクエリ query を作成してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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()
コードを編集して実行