我有一个包含许多数字的文件,范围从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将文件分成几个部分并同时执行。如果是,我怎么能让树集由不同的部分共享?实现我的目标是一个好主意吗? 感谢。
答案 0 :(得分:3)
如何使用subtract
:
val fileRDD = sc.makeRDD(List(2,3,4))
val fullRDD = sc.makeRDD(1 to 5)
fullRDD.subtract(fileRDD).collect //1,5