Scala 从另一个分区访问特定RDD分区
当我使用Scala 从另一个分区访问特定RDD分区,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,当我使用mapPartition或其他函数时,我希望从当前分区上的分区旁边获取元素 更一般地说,我很想知道如何从RDD访问特定分区 val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8,9,10,11,12),4) 我想要 val rdd_2 = rdd.something(2) = RDD[Array(4,5,6)] 如果不清楚,谢谢你告诉我 更一般地说,我很想知道如何从RDD访问特定分区 val rdd = sc.parallelize(Array
mapPartition
或其他函数时,我希望从当前分区上的分区旁边获取元素
更一般地说,我很想知道如何从RDD访问特定分区
val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8,9,10,11,12),4)
我想要
val rdd_2 = rdd.something(2) = RDD[Array(4,5,6)]
如果不清楚,谢谢你告诉我
更一般地说,我很想知道如何从RDD访问特定分区
val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8,9,10,11,12),4)
出于调试目的,您可以使用TaskContext
import org.apache.spark.TaskContext
rdd
.mapPartitions(iter => Iterator((TaskContext.get.partitionId, iter.toList)))
.filter{case (k, _) => k == 1}
.values
内部Spark仅用于在选定分区上操作
当我使用mapPartition或其他函数时,我希望从当前分区上的分区旁边获取元素
可能有一些黑客的方式来实现这样的事情,但一般来说,这是不可能的。假设每个分区都可以独立处理,这几乎是Spark计算模型背后的核心概念
如果您想一次访问数据的某些特定子集,可以使用自定义分区器 你能举例说明吗。