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
,它工作得很好。。。