假设我有一些数据:
A B值
1 1 40
1 2 3
1 2 5
2 1 6
2 2 10
在数据框中(比如'df')。我在A和B上将它分区为:
df.repartition($"A",$"B")
现在,假设我们应该计算每个分区中可以被2或5整除的值的数量(单独)。 保持与可用分区数量一样多的变量是不合理的。什么是最佳的解决方法?
(请提供适用于Spark 1.6 +的解决方案)
答案 0 :(得分:1)
你可以使用.mapPartition转换来对特定分区进行任何特定的计算。例如:
rdd.mapPartition{x=>
var s=0
x.map{
//operation on elements of each partition
}
}