pyspark.RDD.groupWith

RDD.groupWith(other: pyspark.rdd.RDD[Tuple[Any, Any]], *others: pyspark.rdd.RDD[Tuple[Any, Any]]) → pyspark.rdd.RDD[Tuple[Any, Tuple[pyspark.resultiterable.ResultIterable[Any], …]]]

Alias for cogroup but with support for multiple RDDs.

Examples

>>> w = sc.parallelize([("a", 5), ("b", 6)])
>>> x = sc.parallelize([("a", 1), ("b", 4)])
>>> y = sc.parallelize([("a", 2)])
>>> z = sc.parallelize([("b", 42)])
>>> [(x, tuple(map(list, y))) for x, y in sorted(list(w.groupWith(x, y, z).collect()))]
[('a', ([5], [1], [2], [])), ('b', ([6], [4], [], [42]))]