本文简要介绍
pyspark.RDD.combineByKey
的用法。用法:
RDD.combineByKey(createCombiner, mergeValue, mergeCombiners, numPartitions=None, partitionFunc=<function portable_hash>)
使用一组自定义聚合函数组合每个键的元素的通用函数。
对于“combined type” C,将 RDD[(K, V)] 转换为 RDD[(K, C)] 类型的结果。
用户提供三个函数:
createCombiner
,将 V 转换为 C(例如,创建一个单元素列表)mergeValue
,将 V 合并到 C 中(例如,将其添加到列表的末尾)mergeCombiners
,将两个 C 组合成一个(例如,合并列表)
为了避免内存分配,mergeValue 和 mergeCombiners 都可以修改并返回它们的第一个参数,而不是创建一个新的 C。
此外,用户可以控制输出 RDD 的分区。
注意:
(Int, Int) 转换为 (Int, List[Int]) 类型的 RDD。
V 和 C 可以不同 - 例如,可以对类型的 RDD 进行分组:
例子:
>>> x = sc.parallelize([("a", 1), ("b", 1), ("a", 2)]) >>> def to_list(a): ... return [a] ... >>> def append(a, b): ... a.append(b) ... return a ... >>> def extend(a, b): ... a.extend(b) ... return a ... >>> sorted(x.combineByKey(to_list, append, extend).collect()) [('a', [1, 2]), ('b', [1])]
相关用法
- Python pyspark RDD.coalesce用法及代码示例
- Python pyspark RDD.count用法及代码示例
- Python pyspark RDD.collectAsMap用法及代码示例
- Python pyspark RDD.countApproxDistinct用法及代码示例
- Python pyspark RDD.countByValue用法及代码示例
- Python pyspark RDD.countApprox用法及代码示例
- Python pyspark RDD.cogroup用法及代码示例
- Python pyspark RDD.countByKey用法及代码示例
- Python pyspark RDD.cartesian用法及代码示例
- Python pyspark RDD.saveAsTextFile用法及代码示例
- Python pyspark RDD.keyBy用法及代码示例
- Python pyspark RDD.sumApprox用法及代码示例
- Python pyspark RDD.lookup用法及代码示例
- Python pyspark RDD.zipWithIndex用法及代码示例
- Python pyspark RDD.sampleByKey用法及代码示例
- Python pyspark RDD.subtract用法及代码示例
- Python pyspark RDD.groupWith用法及代码示例
- Python pyspark RDD.distinct用法及代码示例
- Python pyspark RDD.treeAggregate用法及代码示例
- Python pyspark RDD.mapPartitionsWithIndex用法及代码示例
- Python pyspark RDD.foreachPartition用法及代码示例
- Python pyspark RDD.zipWithUniqueId用法及代码示例
- Python pyspark RDD.sortByKey用法及代码示例
- Python pyspark RDD.takeOrdered用法及代码示例
- Python pyspark RDD.toLocalIterator用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.RDD.combineByKey。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。