地图转换中的“键”值不正确

问题描述

apache-beam==2.23.0 Python 3.8.5 DirectRunner

在我的Map变换中,我试图为每个元组元素提取Key值(在GroupByKey变换之后,上游)。但是输出始终是字符串'KeyParam'而不是实际键值

这是最小的代码:

管道代码

p| beam.Create([("2","elem2.1"),("1","elem1.1"),"elem1.2")]) \
|"group" >>beam.GroupByKey() \
| "log_PCollection_AfterGrouped" >> beam.Map(myRawProcessor.myReader) \

地图转换代码

class myRawProcessor():
    @classmethod
    def myReader(self,e,timestamp=beam.DoFn.TimestampParam,window=beam.DoFn.WindowParam,watermark=beam.DoFn.WatermarkEstimatorParam,key=beam.DoFn.KeyParam,*args,**kwargs):
        print("=== === ===")
        print(e)
        print(key)
        return e

输出

> === === === 
> ('2',['elem1.1']) 
> KeyParam -----> EXPECTED :: '2'
> === === === 
> ('1',['elem1.2','elem1.3']) 
> KeyParam ----> EXPECTED :: '1'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)