gpt4 book ai didi

python - 如何有效合并 EMR 上的 Spark 输出文件?

转载 作者:行者123 更新时间:2023-11-28 17:27:48 28 4
gpt4 key购买 nike

Spark 作业(我认为)为每个分区创建一个文件,以便它可以处理故障等...,因此在作业结束时,您会留下一个文件夹,其中可以保留很多文件夹他们。这些文件会自动加载到 S3,那么有没有办法将它们合并到一个准备好加载到 Redshift 的压缩文件中?

最佳答案

代替下面的,它将在“my_rdd”中的每个分区写入一个未压缩的文件...

my_rdd.saveAsTextFile(destination)

一个人可以做...

my_rdd.repartition(1).saveAsTextFile(destination, compressionCodecClass=“org.apache.hadoop.io.compress.GzipCodec”)

这会将所有分区中的数据发送到集群中的一个特定工作节点,以将其组合成一个大分区,然后将其写入单个 gzip 压缩文件中。

但是,我认为这不是解决问题的理想方法。只有一个线程写出并压缩单个结果文件。如果该文件很大,那可能需要“永远”。集群中的每个核心都处于空闲状态,只有一个。 Redshift 不需要将所有内容都放在一个文件中。 Redshift 可以轻松处理加载一组文件 --- 使用带有“ list 文件”或“前缀”的 COPY:Using the COPY Command to Load from S3 .

关于python - 如何有效合并 EMR 上的 Spark 输出文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37332181/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com