查找不在RDD中的数字

时间:2016-03-07 20:44:32

标签: scala apache-spark

我有一个包含许多数字的文件,范围从1到10000而不进行排序,每个数字都由"拼接。 &#34 ;.特定数字也可能出现多次。  像:

2 3 4 2 10 45 3 ....

我希望得到一个排序列表,该列表由未出现在此文件中的数字组成。为了清楚地说明,让范围为1(含)到10(含)(不是1到10000)

,文件是:

2 3 6 3 5 7 8 4 7

我希望列表如下:

1 9 10。

如果在Java中,我只需要使用TreeSet,并删除文件中出现的数字,剩下的就是我想要的。但我怎么能在Spark中做到这一点?我刚开始学习Spark和scala,并提出以下问题?

1.在spark或scala中是否有像treeSet这样的数据结构?如果没有,我该怎么做。

2.Spark将文件分成几个部分并同时执行。如果是,我怎么能让树集由不同的部分共享?实现我的目标是一个好主意吗? 感谢。

1 个答案:

答案 0 :(得分:3)

如何使用subtract

val fileRDD = sc.makeRDD(List(2,3,4))
val fullRDD = sc.makeRDD(1 to 5)
fullRDD.subtract(fileRDD).collect //1,5