本文簡要介紹
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。