我读了reducebyKey
对大数据集来说是一个更好的选择,可以减少数据的混洗,并以这种方式提高性能。我想转换我的使用groupByKey
。首先,它必须被转换为RDD:将groupByKey转换为reduceByKey
val linksNew = links.map(convertToRelationship)
.flatMap(bidirRelationship)
链接是一个数据集和数据集的API没有reduceByKey
。当使用reduceByKey
时,相当于.groupByKey(_._1)
?
val linksfinal = linksNew.rdd.reduceByKey(???)
实际代码:
一些数据集中的实际数据:
val biLinks = links
.map(convertToRelationship)
.flatMap(bidirRelationship)
.groupByKey(_._1)
.reduceGroups((left, right) => combineBidirerRelationships(left,right))
.map(_._2._2)
你的数据在'groupByKey()'之前的样子是怎么样的? – Shaido
@Shaido喜欢这样''DataSet(String,Relationship)'然后应该如下 with groupByKey跟着,'KeyValueGroupedDataSet [String,(String,Relationship)]' – dedpo
添加一个我相信会工作的答案,尽管我没有'对它进行测试,告诉我它是如何工作的。 – Shaido