我想在本地(在驱动程序上)合并排序的分区。
我做了.mapPartitionsToPair()
在我创建 Iterable<Tuple2<D,X>>
的数据上其中 D
是一种有顺序的类型(可以说是某种日期),并且 X
是一种具有一些合并规则的类型。结果按D
排序独一无二。
我需要我的最终结果作为这些分区的减少,也按 D
排序独特的。是否有任何本地减少依赖于按键排序的输入?我可以使用任何其他方法来实现我的目标吗?
我正在使用 Spark 1.1.0。
最佳答案
最简单的解决方案是 sortByKey()
然后是 collect()
。它不使用数据的已排序属性,但排序是可扩展的并且 fast ,而且很容易做到。
但如果您真的想依赖已排序的属性,请使用 glom()
然后使用 collect()
来获取分区列表。然后合并排序列表,例如与 Guava 的 Iterators.mergeSorted() 合并.
关于java - Spark : Merge sorted partitions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26757142/