更多 ID 小技巧
當你定義好一個 Spark 處理流程後,通常會重複使用很多次。視需求不同,你可能會希望從特定數值開始產生 ID,避免和先前執行的 Spark 工作互相重疊。這個行為和關聯式資料庫中的 ID 運作方式類似。你被指派的任務是:確保每月 Spark 工作輸出的 ID,會從上個月的最大值之後開始。
工作空間已提供 spark 工作階段,以及兩個 DataFrame:voter_df_march 和 voter_df_april。pyspark.sql.functions 函式庫已使用別名 F 匯入。
本練習屬於課程
使用 PySpark 清理資料
練習說明
- 找出
voter_df_march中最大的ROW_ID,並將其儲存到變數previous_max_ID。可使用.rdd.max()[0]取得最大 ID。 - 在
voter_df_april中新增ROW_ID欄位,起始值為previous_max_ID+ 1。 - 顯示兩個 DataFrame 的
ROW_ID,並加以比較。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Determine the highest ROW_ID and save it in previous_max_ID
____ = ____.select('ROW_ID').rdd.max()[0] + 1
# Add a ROW_ID column to voter_df_april starting at the desired value
voter_df_april = ____.withColumn('ROW_ID', ____ + ____)
# Show the ROW_ID from both DataFrames and compare
____.select('ROW_ID').show()
____