java - Spark : Merge sorted partitions

标签 java merge apache-spark

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

我做了.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/

相关文章:

java - 运行opencv使用java报错

java - 如何使用 jackson CsvMapper 或其他 csv 解析器解析 CSV 字符串中的列?

java - 从 xml 字符串构建 DOM 文档给我一个空文档

sql-server - SQL Server 2014 - 合并 - 语法错误

scala - $() 在 Scala 中是什么意思?

java - 将 Java 翻译成 X10

R根据其引用列将特定列从一个数据帧合并到另一个数据帧

git - 如何在 git 中备份私有(private)分支

Java-Spark : Unable to read property file in cluster mode

python - SparkReduce和Map问题