根据两个Pcollection的键(仅)创建笛卡尔乘积(Apache Beam python)

时间:2019-06-30 20:46:53

标签: apache beam

(伪代码是python对齐的)

我有一个PCollection(例如T):
{'t1':trd001,'t2':trd002,'t3':trd004}

我有第二个(例如C):
{'c1':crv001,'c2':crv002,'c3':crv003,'c4':crv004,'c5':crv005}

T中的每个元素都需要与C中的所有元素相关联,因为需要评估该对。换句话说,
(t1,c1)
(t1,c2)
(t1,c3)
(t1,c4)
(t1,c5)
(t2,c1)
...
(t2,c5)
...
(t3,c5)

需要创建。以上每个对都是新PCollection中的元素,然后可以将其删除以进行同时评估(使用侧面输入等)

此刻,我将PCollection C作为T的边输入提供,然后迭代它们的C键并以K,V返回结果。

在顶部似乎有点提供了C的整个PCollection,我只需要C的键即可。

class MyDoFn(beam.DoFn):
    def process(self, element, sideinpOfC):
        for cKey in sideinpOfC.keys():
            yield element["tName"]+"_"+cKey, element

0 个答案:

没有答案