问题描述
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 (将#修改为@)