更多 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()
____