【发布时间】:2021-05-22 16:26:17
【问题描述】:
我有一个包含 (Key, Value) 的 JavaPairRDD,我想按 Keys 对它进行分组,并将“第二列”作为一个列表,其中包含为该键看到的所有值。我目前正在使用groupby() 函数,该函数正确执行键聚合,但将我的值转换为长的 Iterable。这是,
Key1 Iterable<Long>
Key2 Iterable<Long>
...
有什么方法可以强制这个函数使用 Long 列表而不是 Iterable 对象?
Key1 List<Long>
Key2 List<Long>
...
我读到了一些关于名为combineByKey() 的函数,但我认为这不是一个用例。可能我需要使用 reduceByKey 但我没有看到它。应该是这样的:
myRDD.reduceByKey((a,b) -> new ArrayList<Long>()) //and add b to a
最后,我想组合值得到一个Key n,List<Long>RDD。
感谢您的宝贵时间。
【问题讨论】:
标签: java apache-spark rdd