Spark:合并已排序的分区

时间:2014-11-05 12:23:55

标签: java merge apache-spark

我想在本地合并已排序的分区(在驱动程序上)。

我对创建.mapPartitionsToPair()的数据Iterable<Tuple2<D,X>> D,其中X是一种有排序的类型(比方说某种日期),D是一种类型有一些合并规则。结果按D唯一排序。

我需要将最终结果作为这些分区的缩减,也可以{{1}}唯一排序。是否有任何本地减少依赖于按键排序的输入?我可以使用任何其他方法来实现我的目标吗?

我使用的是Spark 1.1.0。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是sortByKey()然后collect()。它没有使用数据的已排序属性,但排序是可扩展的fast,并且很容易做到。

但是如果你真的想依赖已经排序的属性,请使用glom()然后使用collect()来获取分区列表。然后合并排序的列表,例如与Guava的Iterators.mergeSorted()