(伪代码是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