我已经使用AWS Glue Job(pySpark)设置了数据管道。该作业是从lambda函数触发的,并在进行关联后将镶木地板文件写入日期分区。 有时,我要重新处理相同的日期分区,并想在写入新文件之前删除先前写入的文件。有没有一种方法可以在作业中获取日期分区,以便可以先删除先前写入的文件?
我知道胶粘作业会在某处维护日期分区,因为当我调用gumContext.write_dynamic_frame.from_options()时,它会正确获取分区键。我需要知道作业当前在哪个日期分区上进行操作以删除文件。谢谢您的帮助。射频
答案 0 :(得分:0)
当前,AWS Glue不支持“覆盖”模式,但是他们正在使用此功能。
作为一种解决方法,您可以将DynamicFrame对象转换为spark的DataFrame并使用spark而不是Glue写入它。示例:
dynamic_frame.toDF()
.write
.mode("overwrite")
.format("parquet")
.partitionBy("date_col")
.save(output_dir)
这将覆盖提供的分区中的文件,您不必担心显式清理分区。