pyspark.RDD.combineByKey¶
-
抽样。
combineByKey
( createCombiner:可调用的[[V], U], mergeValue:调用(U, V), U, mergeCombiners:调用(U, U), U, numPartitions:可选(int) = None, partitionFunc:可调用的[[K], int] = <函数portable_hash > )→pyspark.rdd.RDD(元组(K,U] ] ¶ -
泛型函数结合的元素为每个聚合函数的主要使用一个自定义组。
把一个抽样[(K、V)]的结果类型抽样(K、C),“组合式”C。
用户提供三个函数:
createCombinerV变成一个C(例如,创建一个元素的列表)
mergeValue,合并V C(例如,将其添加到列表)
mergeCombiners,结合两个C的一个(例如,合并列表)
为了避免内存分配,mergeValue和mergeCombiners都允许修改并返回它们的第一个参数,而不是创建一个新的C。
此外,用户可以控制输出抽样的分区。
笔记
- V和C可以是不同的——例如,一个可能组抽样的类型
-
(Int, Int)成一个抽样的类型(Int, Int[])列表。
例子
> > >x=sc。并行化(((“一个”,1),(“b”,1),(“一个”,2)))> > >defto_list(一个):…返回(一个]…> > >def附加(一个,b):…一个。附加(b)…返回一个…> > >def扩展(一个,b):…一个。扩展(b)…返回一个…> > >排序(x。combineByKey(to_list,附加,扩展)。收集())((“a”, [1,2]), (“b”, [1])]