pyspark 保存一个大的Spark Dataframe作为S3中的一个json文件

kzmpq1sx  于 11个月前  发布在  Spark
关注(0)|答案(3)|浏览(115)

我试图在Amazon S3中将Spark DataFrame(超过20 G)保存保存到一个JSON文件中,我的代码保存该DataFrame是这样的:

dataframe.repartition(1).save("s3n://mybucket/testfile","json")

字符串
但是我从S3得到一个错误“你建议的上传超过了最大允许的大小”,我知道亚马逊允许的最大文件大小是5GB。
有没有可能在Spark中使用S3 multipart upload?或者有其他方法可以解决这个问题?
顺便说一句,我需要在一个文件中的数据,因为另一个用户将下载后。

  • 我在用spark-ec2脚本创建的3节点集群中使用apache spark 1.3.1。

非常感谢
JG

6l7fqoea

6l7fqoea1#

我会尝试将大的嵌套框架分成一系列较小的嵌套框架,然后将它们追加到目标中的同一个文件中。

df.write.mode('append').json(yourtargetpath)

字符串

6bc51xsx

6bc51xsx2#

试试这个

dataframe.write.format("org.apache.spark.sql.json").mode(SaveMode.Append).save("hdfs://localhost:9000/sampletext.txt");

字符串

hgb9j2n6

hgb9j2n63#

我认为s3a不是Spark中的生产版本。我会说设计不合理。repartition(1)将是可怕的(你告诉spark的是将所有分区合并到一个单一的分区)。我建议说服下游从一个文件夹下载内容,而不是单个文件

相关问题