PySpark RDD 的 partitionBy(~)
方法将一对 RDD 重新分区为所需数量的分区。
参数
1. numPartitions
| int
生成的 RDD 的所需分区数。
2. partitionFunc
| function
| optional
分区函数 - 输入是键,返回值必须是哈希值。默认情况下,将使用哈希分区器。
返回值
PySpark RDD (pyspark.rdd.RDD
)。
例子
重新分区一对 RDD
考虑以下 RDD:
# Create a RDD with 3 partitions
rdd = sc.parallelize([("A",1),("B",1),("C",1),("A",1)], numSlices=3)
rdd.collect()
[('A', 1), ('B', 1), ('C', 1), ('A', 1)]
要查看此 RDD 如何分区,请使用 glom()
方法:
rdd.glom().collect()
[[('A', 1)], [('B', 1)], [('C', 1), ('A', 1)]]
我们确实可以看到有3个分区:
-
分区一:
('A',1)
和('B',1)
-
分区二:
('C',1)
-
分区三:
('A',1)
重新分区为 2 个分区:
new_rdd = rdd.partitionBy(numPartitions=2)
new_rdd.collect()
[('C', 1), ('A', 1), ('B', 1), ('A', 1)]
要查看新分区的内容:
new_rdd.glom().collect()
[[('C', 1)], [('A', 1), ('B', 1), ('A', 1)]]
我们确实可以看到有2个分区:
-
分区一:
('C',1)
-
分区二:
('A',1)
、('B',1)
、('A', 1)
请注意带有 A
键的元组如何最终位于同一分区中。这是肯定会发生的,因为哈希分区器将根据元组键执行分桶。
相关用法
- Python PySpark RDD zip方法用法及代码示例
- Python PySpark RDD collect方法用法及代码示例
- Python PySpark RDD repartition方法用法及代码示例
- Python PySpark RDD countByKey方法用法及代码示例
- Python PySpark RDD reduceByKey方法用法及代码示例
- Python PySpark RDD coalesce方法用法及代码示例
- Python PySpark RDD zipWithIndex方法用法及代码示例
- Python PySpark RDD count方法用法及代码示例
- Python PySpark RDD filter方法用法及代码示例
- Python PySpark RDD collectAsMap方法用法及代码示例
- Python PySpark RDD first方法用法及代码示例
- Python PySpark RDD keys方法用法及代码示例
- Python PySpark RDD glom方法用法及代码示例
- Python PySpark RDD getNumPartitions方法用法及代码示例
- Python PySpark RDD map方法用法及代码示例
- Python Django Response.json用法及代码示例
- Python Django Repeat用法及代码示例
- Python Django RandomUUID用法及代码示例
- Python Django RelatedManager.set用法及代码示例
- Python RLock acquire()用法及代码示例
- Python Django RelatedManager.remove用法及代码示例
- Python Random.Choices()用法及代码示例
- Python Django RequestContext用法及代码示例
- Python Django Reverse用法及代码示例
- Python NumPy Random Generator uniform方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark RDD | partitionBy method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。