spark RDD中的元组如何按照指定格式保存到HDFS上?

sabiqusi 2017-12-21 01:57:51
请教一个问题:spark数据清洗的结果为RDD[(String, String)]类型的rdd,在这个RDD中,每一个元素都是

一个元组。元组的key值是文件名,value值是文件内容,我现在想把整个RDD保存在HDFS上,让RDD中的每一

个元素保存为一个文件,其中key值作为文件名,而value值作为文件内容。

应该如何实现呢?

RDD好像不支持遍历,只能通过collect()方法保存为一个数组,再进行遍历,但是这样可能会把内存撑爆,

目前的做法是先把RDD通过saveAsTextFile方法保存在HDFS上,然后再使用FSDataInputStream输入流对保存

后的part文件进行遍历读取,使用输出流写到HDFS上,这样很耗时。

请问有没有好一点的方法,可以直接把RDD的内容写到HDFS上呢?
...全文
717 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
张某码 2018-01-19
  • 打赏
  • 举报
回复
foreach算子,用文件流处理不要用saveAsTextFile了
KingOfJelly 2018-01-16
  • 打赏
  • 举报
回复
每个元素都保存成一个文件?还是说想要每个相同的key的所有元素生成到以key为文件名,values为内容?

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧