将RDD保存到文件会导致部件的_temporary路径

时间:2014-11-29 16:26:20

标签: amazon-s3 apache-spark rdd

我在Spark中有数据要保存到S3。推荐的方法是使用SparkContext上的saveAsTextFile方法进行保存,这是成功的。我希望数据将保存为“部分”。

我的问题是,当我转到S3查看我的数据时,它已保存在文件夹名_temporary中,并带有子文件夹0,然后将每个部分或任务保存在自己的文件夹中

例如,

data.saveAsTextFile("s3:/kirk/data");

导致文件喜欢

s3://kirk/data/_SUCCESS
s3://kirk/data/_temporary/0/_temporary_$folder$
s3://kirk/data/_temporary/0/task_201411291454_0001_m_00000_$folder$
s3://kirk/data/_temporary/0/task_201411291454_0001_m_00000/part-00000
s3://kirk/data/_temporary/0/task_201411291454_0001_m_00001_$folder$
s3://kirk/data/_temporary/0/task_201411291454_0001_m_00001/part-00001

等等。我会期待并看到类似

的内容
s3://kirk/data/_SUCCESS
s3://kirk/data/part-00000
s3://kirk/data/part-00001

这是配置设置,还是我需要“提交”保存来解析临时文件?

2 个答案:

答案 0 :(得分:1)

我遇到了与火花流相同的问题,那是因为我的Sparkmaster设置了conf.setMaster("local")而不是conf.SetMaster("local[*]") 如果没有[*],则火花无法在流中执行saveastextfile

答案 1 :(得分:0)

在导出之前,尝试使用coalesce()将rdd减少为1分区。 祝你好运!