加入 ID 欄位
在處理資料時,你有時只想取用特定欄位並進行各種操作。 在這個情境中,從 DataFrame 找出所有「唯一」的選民姓名,並加入唯一的 ID 編號。 請記住,Spark 的 ID 是根據 DataFrame 的「分割區(partition)」指派的,因此 ID 數值可能遠大於 DataFrame 的實際列數。
由於 Spark 採用「延遲(lazy)」處理,ID 其實要等到執行 action 時才會產生,而且依資料集大小不同,結果看起來可能有些隨機。
工作區中已提供 spark 工作階段與包含 DallasCouncilVotes.csv.gz 檔案的 Spark DataFrame df。pyspark.sql.functions 函式庫已以別名 F 匯入可用。
本練習屬於課程
使用 PySpark 清理資料
練習說明
- 從
VOTER NAME欄位選出唯一項目,並建立名為voter_df的新 DataFrame。 - 計算
voter_dfDataFrame 的列數。 - 使用合適的 Spark 函式新增一個 ROW_ID 欄位。
- 顯示 ROW_ID 數值最高的前 10 列。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Select all the unique council voters
voter_df = df.____(df["VOTER NAME"]).____()
# Count the rows in voter_df
print("\nThere are %d rows in the voter_df DataFrame.\n" % ____)
# Add a ROW_ID
voter_df = voter_df.____('ROW_ID', F.____())
# Show the rows with 10 highest IDs in the set
voter_df.orderBy(voter_df.____.desc()).show(____)