【发布时间】:2020-01-10 14:24:07
【问题描述】:
当我尝试对 AWS 上的大量文件执行 ETL 时遇到问题。 目标是将 JSON 文件转换为 parquet 文件。由于文件的大小,我必须逐批进行。假设我需要分 15 个批次进行,即 15 次单独运行才能转换所有批次。
我正在使用 write.mode("append").format("parquet") 在每个胶水 pyspark 作业中写入镶木地板文件来做到这一点。
我的问题是,如果一项作业因某种原因失败,那么我不知道该怎么办 - 一些分区已更新,而有些则没有,批处理中的一些文件已处理,而有些尚未处理。例如,如果我的第 9 份工作失败了,我就会陷入困境。我不想删除所有镶木地板文件重新开始,但也不想只是重新运行第 9 个作业并导致重复。
有没有办法保护 parquet 文件,仅在整个作业成功时才将新文件附加到其中?
谢谢!!
【问题讨论】:
-
您的存储是在 S3 中还是在虚拟机的驱动器或其他东西上?
-
@napoleon_borntoparty S3.
标签: amazon-web-services pyspark parquet aws-glue