ID活用のさらなるテクニック
一度Sparkの処理を定義したら、それを何度も使いたくなることが多いです。要件によっては、IDが過去の実行と重ならないように、特定の値から開始したい場合があります。これは、リレーショナルデータベースでのIDの扱いに似ています。あなたのタスクは、毎月のSparkタスクから出力されるIDが、前月の最大値から始まることを確認することです。
作業スペースには spark セッションと2つの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 から始まるようにしてください。- 両方のデータフレームで
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()
____