开始使用免费开始使用

构建上下文窗口特征数据

移动窗口技术对使用上下文窗口特征数据的机器学习模型非常有用。

您的工作区中已有一张名为 text 的表,包含列 idwordparttitle。其中存放了《福尔摩斯》一书的第 9、10、11、12 章。单词已预处理为「每行一个词」。每个词都有由 id 列提供的唯一整数索引。对于在文本中更早出现的词,id 值更小;更晚出现的词,id 值更大。

第 12 章数据集的前 10 行已作为 Table1 打印到控制台。目标结果中按第 12 章(part 12)筛选的前 10 行,已作为 Table2 打印到控制台。在 Table2 中,每一行的「给定」单词在列 w3 中。列 w1w2 给出紧挨在给定词之前的两个词。列 w4w5 给出紧挨在给定词之后的两个词。

请注意,第一行中 w1w2null。这是因为在第 12 章范围内,w3(此处为 "xii")之前没有任何词。

如果您忘记了视频中的某个步骤,请随时查看控制台右侧提供的幻灯片。

本练习是课程的一部分

Python 中的 Spark SQL 入门

查看课程

练习说明

  • 针对每一行,获取该词以及其之前的两个词和之后的两个词。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Word for each row, previous two and subsequent two words
query = """
SELECT
part,
LAG(word, 2) OVER(PARTITION BY ____ ORDER BY ____) AS w1,
LAG(word, ____) OVER(____ BY part ____ BY id) AS w2,
word AS w3,
____(word, 1) OVER(____ BY part ____ BY id) AS w4,
LEAD(word, 2) OVER(____ BY part ____ BY id) AS w5
FROM text
"""
spark.sql(query).where("part = 12").show(10)
编辑并运行代码