【发布时间】:2018-10-02 13:38:45
【问题描述】:
我有一个可变哈希集,我在其中添加来自文本文件的元素,但也添加了重复项。 我的代码是
val machines = new mutable.HashSet[String]
val splitRdd = textFile.flatMap(line => {
val l =line.split("\\t").toList
machines.add(l(2))
machines})
splitRdd.foreach(rdd=> println(rdd))
splitRdd.saveAsTextFile(outputFile)
文本文件是:
0 0 m2 0 0 0
0 0 m2 0 0 0
0 0 m3 0 0 0
0 0 m3 0 0 0
我在 spark 的输出文件和标准输出中得到的是:
m2
m2
m2
m3
m3
除了添加了重复项之外,文件中还存在一个不存在的“m2”。我认为我的代码是正确的,有人知道为什么会这样吗?
【问题讨论】:
-
什么是机器?你能更新代码吗?
-
machines是m2、m3相加的hashset
-
但是输出的是
splitRdd.foreach(rdd=> println(rdd)),不是哈希集,而是RDD的元素。您保存在文本文件中的是splitRdd.saveAsTextFile(outputFile),而不是哈希集。那么你怎么知道哈希集有重复呢? -
新的rdd不是和hashset一样吗?我想通过退回它,它会是一样的。另外,我正在尝试打印机器,但没有打印任何内容
标签: scala apache-spark duplicates hashset