开始使用免费开始使用

查找常见的词序列

此前我们演示了如何编写查询来查找长度为 3 的词序列("3-tuples")。 我们将该查询作为子查询,配合传统 SQL 查询,从文本中找出最常见的 3-tuples。 现在,您将做类似的事情,找出最常见的 5-tuples。

已提供 DataFrame text_df。它包含《福尔摩斯》文本的前 5 章,列为:wordidparttitleid 列为整数,文档中位置更靠后的词具有更大的 id,位置更靠前的词 id 更小。part 列用于按章节分隔数据。DataFrame text_df 也已注册为名为 text 的临时表。我们的目标是创建一个数据集,其中每一行对应一个 5-tuple,并带有 count,表示该元组在数据集中出现的次数。

本练习是课程的一部分

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()
编辑并运行代码