Spark Dataframe Scala:groupby在UnionAll之后不起作用

时间:2017-03-29 14:22:11

标签: scala apache-spark dataframe

我使用val src = file.map(_.split("\t")).map(p => node(p(0), (0-p(2).trim.toInt))).toDF() val target = file.map(_.split("\t")).map(p => node(p(1), p(2).trim.toInt)).toDF() val srcfl = src.filter(src("weight") != -1) val targetfl = target.filter(target("weight") != 1) val nodes = srcfl.unionAll(targetfl) nodes.groupBy("name").sum() nodes.map(x => x.mkString("\t")).saveAsTextFile("hdfs://localhost:8020" + args(1)) 将源DF(负权重)和目标DF(具有正权重)组合到节点DF中。然后我执行didInsertElement来总结相同节点的所有权重,但我不知道为什么DidRender根本没有为联合DF工作。有没有人面临同样的问题?:

this.$()

1 个答案:

答案 0 :(得分:2)

您只是忽略了groupBy操作的结果:就像所有DataFrame转换一样,.groupBy(...).sum()没有改变原始DataFrame({ {1}}),它产生一个新的。我怀疑如果您实际使用nodes的返回值,您将会看到您正在寻找的结果:

sum()