我在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
这是配置设置,还是我需要“提交”保存来解析临时文件?
答案 0 :(得分:1)
我遇到了与火花流相同的问题,那是因为我的Sparkmaster设置了conf.setMaster("local")
而不是conf.SetMaster("local[*]")
如果没有[*]
,则火花无法在流中执行saveastextfile
。
答案 1 :(得分:0)
在导出之前,尝试使用coalesce()将rdd减少为1分区。 祝你好运!