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