如何通过spark作为块写入S3?

时间:2016-12-14 04:35:01

标签: apache-spark dataframe amazon-s3

我正在使用spark作为AVRO文件写入s3。它被保存为单个文件,但我想在写入时将其块化为多个文件。

我用过:

df.coalesce(6).write.json(path)

但它仍然保存为单个文件。

任何帮助将不胜感激!

感谢!

1 个答案:

答案 0 :(得分:0)

您的RDD可能在coalesce(6)调用之前只有一个分区。 coalesce()仅在减少分区数量时起作用,但如果要求增加它们则不执行任何操作:

  

coalesce(numPartitions):将RDD中的分区数减少到numPartitions

您可以尝试使用repartition(6)代替,如果分区数量增加也会有效:

  

重新分区(numPartitions):随机重新调整RDD中的数据,以创建更多或更少的分区并在它们之间进行平衡。这总是随机播放网络上的所有数据。