【发布时间】:2018-05-10 03:36:29
【问题描述】:
我想在 spark 中编写一个自定义分区器,我正在研究 java。
但是我注意到 javaRDD 类(或 Dataset 类)没有像 scala 中的 partitionBy(Partitioner) 方法。只有 javaPairRDD 可以。如果没有这种方法,我应该如何对 RDD 或数据集进行分区?
【问题讨论】:
标签: java apache-spark partition
我想在 spark 中编写一个自定义分区器,我正在研究 java。
但是我注意到 javaRDD 类(或 Dataset 类)没有像 scala 中的 partitionBy(Partitioner) 方法。只有 javaPairRDD 可以。如果没有这种方法,我应该如何对 RDD 或数据集进行分区?
【问题讨论】:
标签: java apache-spark partition
如果没有这种方法,我应该如何对 RDD 或数据集进行分区?
你不认为:
Datasets 没有 Partitioner 的公共概念。相反,您使用repartition 方法,该方法采用分区数和Columns 的可选列表。分区方法本身不可配置(它使用带有 Murmur Hash 的哈希分区)。
RDDs,除了“PairRDDs”(Java 中的JavaPairRDD,Scala 中的RDD[(_, _)])根本无法重新分区。如果要重新分区其他RDD,则必须先将其转换为PairRDD。如果您没有好的选择,可以使用null 作为值,使用记录作为键。
【讨论】: