【发布时间】:2016-11-19 13:41:23
【问题描述】:
想象一下我有一个三胞胎:
val RecordRDD : RDD[Int, String, Int] = {
(5 , "x1", 100),
(3 , "x2", 200),
(3 , "x4", 300),
(5 , "x1", 150),
(3 , "x2", 160),
(5 , "x1", 400)
}
如何有效地将它们按前两个元素分组并按第三个元素排序?例如制作:
[5 , [ "x1" -> [100, 150, 400] ]
[3 , [ ["x2" -> [160, 200]], ["x4" -> [300]] ]
我正在寻找一种有效的方法。
我是否应该将其设为 DataFrame 并使用 GroupBy(Col1,Col2) 和 SortBy(Col3)?
会比 Spark RDD 的 groupBy 更高效吗?
AggregateByKey 可以同时聚合 2 个键吗?
*你可以假设这个 RDD 非常大!提前致谢。
【问题讨论】:
标签: apache-spark group-by rdd