【发布时间】:2016-04-30 03:07:46
【问题描述】:
我有一个RDD,其结构如下:
val rdd = RDD[ (category: String, product: String, score: Double) ]
我的目标是 group 基于类别的数据,然后为每个类别 sort w.r.t. Tuple 2 (product, score) 的分数。至于现在我的代码是:
val result = rdd.groupByKey.mapValues(v => v.toList.sortBy(-_._2))
事实证明,对于我拥有的数据而言,这是非常昂贵的操作。我希望使用替代方法来提高性能。
【问题讨论】:
-
为什么排序如此重要?
-
如果你能给出粗略的尺寸可能会有所帮助 - 原始 RDD 中有多少项目,有多少类别,平均每个类别有多少项目。这需要多长时间,在什么样的硬件上?您需要多快?
-
您打算如何使用排序后的数据?你打算遍历所有这些,你只想找到最上面的吗?
标签: scala sorting apache-spark combiners