如何转换调用后返回的集合 take(5)
到另一个rdd以便我可以保存输出文件中的前5条记录?
如果我使用 saveAsTextfile
它不让我使用 take
以及 saveAsTextFile
一起(这就是为什么你看到下面的评论)。它按排序顺序存储rdd中的所有记录,因此前5个记录是前5个国家/地区,但我只想存储前5个记录-是否可以将集合[take(5)]转换为rdd?
val Strips = txtFileLines.map(_.split(","))
.map(line => (line(0) + "," + (line(7).toInt + line(8).toInt)))
.sortBy(x => x.split(",")(1).trim().toInt, ascending=false)
.take(5)
//.saveAsTextFile("output\\country\\byStripsBar")
解决方案: sc.parallelize(Strips, 1).saveAsTextFile("output\\country\\byStripsBar")
2条答案
按热度按时间xjreopfe1#
除非你真的需要
saveAsTextFile
格式化,我只需要打印take(5)
使用简单io输出到文件(如File
).否则,这就是罗嗦
RDD
唯一解决方案:9rbhqvlz2#