開始使用免費開始

建立語境視窗特徵資料

移動視窗技術對於使用語境視窗特徵資料的機器學習模型很有用。

你的工作環境中有一個資料表 text,包含欄位 idwordparttitle。內容為《福爾摩斯》書中的第 9、10、11 與 12 章。單字已經處理為每列一個字。每個單字都有一個由 id 欄位提供的唯一整數索引。id 欄位對於較早出現的單字會較小,對於較晚出現的單字會較大。

第 12 章資料集的前 10 列已印在主控台上為 Table1。目標結果的前 10 列(僅限於 part 12,也就是第 12 章)已印在主控台上為 Table2。在 Table2 中,該列的「given」單字在欄位 w3。欄位 w1w2 分別是該 given 單字的前兩個單字。欄位 w4w5 分別是該 given 單字的後兩個單字。

請注意首列中的 w1w2null。這是因為在 part 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)
編輯並執行程式碼