SPARK:为不同的分区维护不同的变量?

时间:2016-10-13 04:56:08

标签: scala apache-spark spark-dataframe

假设我有一些数据:

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 +的解决方案)

1 个答案:

答案 0 :(得分:1)

你可以使用.mapPartition转换来对特定分区进行任何特定的计算。例如:

rdd.mapPartition{x=> 
var s=0
x.map{
   //operation on elements of each partition 
} 
}