使用 RDD 和数据集时针对 EMRFS S3 优化的提交程序

EMRFS S3-optimized committer when using RDD and Datasets

我想使用 EMRFS S3 优化的提交程序。 当 运行 在 spark EMR 中执行新步骤时,我将“spark.sql.parquet.fs.optimized.committer.optimization-enabled”设置为 true。 但我不认为它使用优化的提交者(_SUCCESS 是 0 字节)。 EMR 如何选择使用哪个提交者? 它可以使用针对数据集优化的和未针对 RDD 优化的吗?因为我在同一个火花 运行.

优化的输出提交者是 built-in EMR,默认使用。 AWS 优化的提交器只有在它可以时才会被激活:直到 EMR 6.4.0 它只在某些条件下工作:“从 Amazon EMR 6.4.0 开始,这个提交器可以用于所有常见的格式,包括镶木地板、ORC 和 text-based 格式(包括 CSV 和 JSON)。对于 Amazon EMR 6.4.0 之前的发行版本,仅支持 Parquet 格式”- 来自 AWS 文档。

对我来说,执行时间缩短了 50-60%。

优化的提交者requeirments

_SUCCESS 文件仍为 0 字节。还有其他 OutputCommitter 会像魔术提交器一样将内容写入其中,但不适合 EMR,AWS 建议不要使用 them.