Cogroup и его особенности

Эта операция похожа на FULL OUTER JOIN, но при этом вместо того, чтобы сделать "расплющивание" [flattern]

В документации написано

def cogroup[W](other: RDD[(K, W)]): RDD[(K, (Iterable[V], Iterable[W]))]

For each key k in `this` or `other`, return a resulting RDD that contains a tuple with the list of values for that key in `this` as well as `other`.

В итоге, мы получаем для каждого ключа, в качестве значения, список значений, соответствующих данному ключу в обоих соединяемых множествах.

    programmerProfiles.cogroup(codeRows).sortByKey(false).collect().foreach(println)


(Petr,(CompactBuffer(Scala),CompactBuffer(39)))
(Ivan,(CompactBuffer(Java),CompactBuffer(240)))
(Elena,(CompactBuffer(Scala),CompactBuffer(-15, 290)))

Забавный факт, в Spark 2.2, join реализован через композицию cogroup и flatMapValues.

results matching ""

    No results matching ""