Python 不正确';键';映射变换中的值
Python 不正确';键';映射变换中的值,python,apache-beam,Python,Apache Beam,apachebeam==2.23.0python3.8.5DirectRunner 在我的Map转换中,我试图为每个元组元素提取键值(在GroupByKey转换之后)。但输出总是字符串“KeyParam”,而不是实际的键值 下面是最简单的代码: 管道代码 p | beam.Create([(“2”,“elem2.1”),(“1”,“elem1.1”),(“1”,“elem1.2”))\ |“group”>>beam.GroupByKey()\ |“log\u PCollection\u Afte
apachebeam==2.23.0
python3.8.5
DirectRunner
在我的Map转换中,我试图为每个元组元素提取键值(在GroupByKey转换之后)。但输出总是字符串“KeyParam”,而不是实际的键值
下面是最简单的代码:
管道代码
p | beam.Create([(“2”,“elem2.1”),(“1”,“elem1.1”),(“1”,“elem1.2”))\
|“group”>>beam.GroupByKey()\
|“log\u PCollection\u AfterGrouped”>>beam.Map(myRawProcessor.myReader)\
映射变换代码
类myRawProcessor():
@类方法
def myReader(自我,e,
时间戳=beam.DoFn.timestamp参数,
window=beam.DoFn.WindowParam,
水印=beam.DoFn.watermark参数,
key=beam.DoFn.KeyParam,
*args,**kwargs):
打印(“=”)
打印(e)
打印(键)
返回e
输出
> === === ===
> ('2', ['elem1.1'])
> KeyParam -----> EXPECTED :: '2'
> === === ===
> ('1', ['elem1.2', 'elem1.3'])
> KeyParam ----> EXPECTED :: '1'
这是一个bug,请参阅。同时,在此上下文中避免使用
DoFn.KeyParam
。非常感谢!奇怪的是,如果我删除函数参数中的watermark=beam.DoFn.WatermarkEstimatorParam
,它工作得很好。。。