我试图在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
3条答案
按热度按时间6l7fqoea1#
我会尝试将大的嵌套框架分成一系列较小的嵌套框架,然后将它们追加到目标中的同一个文件中。
字符串
6bc51xsx2#
试试这个
字符串
hgb9j2n63#
我认为s3a不是Spark中的生产版本。我会说设计不合理。repartition(1)将是可怕的(你告诉spark的是将所有分区合并到一个单一的分区)。我建议说服下游从一个文件夹下载内容,而不是单个文件