【发布时间】:2018-07-24 18:59:40
【问题描述】:
我每天将 csv 文件交付到 S3,这些文件在当月是增量的。所以 file1 包含第 1 天的数据,file2 包含第 1 天和第 2 天的数据,等等。每天我想对该数据运行 ETL 并将其写入不同的 S3 位置,以便我可以使用 Athena 查询它没有重复的行。本质上,我只想查询聚合数据的最新状态(这只是最近交付给 S3 的文件的内容)。
我不认为书签会起作用,因为增量交付包含以前文件中的数据,因此会产生重复。我知道如果我在源存储桶中的所有文件上运行,我可以转换为数据框并删除这样的重复项:
spark_df = resolvechoice2.toDF()
spark_df = spark_df.dropDuplicates()
但这似乎会给我增加很多处理,以便每次对源表中的所有数据运行 ETL。
基本工作流程类似于交付新文件,可能使用 Lambda 启动 AWS Glue 作业,该作业仅处理该文件的内容,然后替换输出存储桶的内容。输出桶按年和月分区。
最简单的方法是启用书签并在每次运行时删除输出存储桶中的所有内容吗?
【问题讨论】:
标签: apache-spark aws-glue