根据某些键将spark rdd分为2个单独的文件

时间:2018-11-15 21:56:32

标签: apache-spark rdd

我正在使用Cloudera VM,Linux终端和Spark版本1.6.0

假设我有以下数据集:

优先级,数量,销售=>我不导入标题。

低6,261.54

高,44,1012

低1,240

最高25,2500

我可以加载“ val inputFile = sc.textFile(“ file:///home/cloudera/stat.txt”)

我可以对“ inputFile.sortBy(x => x(1),true).collect

进行排序

但是我想将低优先级和高优先级数据放入2个单独的文件中。

是过滤器还是reduceby或分区?我该怎么做? 如果我可以得到帮助,我想我可以全力以赴地创建优先级和销售,数量和销售的RDD。

1 个答案:

答案 0 :(得分:0)

这可能不是最好的解决方案,但是您可以使用2个过滤器来创建2个不同的RDD,一个过滤器除去低线,另一条除去高线,然后保存在HDFS下。

inputFile.filter($"Priority" == "low").saveAsTextFile("low_file");
inputFile.filter($"Priority" == "high").saveAsTextFile("high_file");