Python 2.7 处理Spark(1.6.1)数据帧的用户定义分区

Python 2.7 处理Spark(1.6.1)数据帧的用户定义分区,python-2.7,apache-spark,pyspark,apache-spark-sql,Python 2.7,Apache Spark,Pyspark,Apache Spark Sql,我有一个数据框,其中一列称为problem_id,包含一个键,该键标识整个数据集的一部分 我不清楚keyBy+partitionByN+mapPartitions是否会将我的数据集划分为N=| problem_id |个分区,这样我就可以在我定义的每个分区上并行执行一些代码 否则,我怎样才能达到这个结果呢? 基本上,我需要对共享相同问题id的所有行应用一个函数 默认分区器HashPartitioner是满射,因此可以将多个键散列到同一分区 SparkR中gapply的直接等价物是groupBy,

我有一个数据框,其中一列称为problem_id,包含一个键,该键标识整个数据集的一部分

我不清楚keyBy+partitionByN+mapPartitions是否会将我的数据集划分为N=| problem_id |个分区,这样我就可以在我定义的每个分区上并行执行一些代码

否则,我怎样才能达到这个结果呢? 基本上,我需要对共享相同问题id的所有行应用一个函数

默认分区器HashPartitioner是满射,因此可以将多个键散列到同一分区

SparkR中gapply的直接等价物是groupBy,后跟MapValue。 如果分组列的基数相当低,则可以使用双射partitor:

pmap=rdd.keys.distinct.zipWithIndex.collectaMap rdd .分区 numPartitions=lenparition\u映射, 分区函数=λx:pmap[x] .mapPartitions。。。 最后,您可以重新分区和排序分区:

rdd .重新分区和排序分区 .mapPartitions。。。 并记录钥匙的更换情况