Vib*_*ain 5 python apache-beam
apache-beam==2.23.0 Python 3.8.5 DirectRunner
在我的 Map 转换中,我试图为每个元组元素提取 Key 值(在 GroupByKey 转换上游之后)。但是输出总是一个字符串“KeyParam”而不是实际的键值
这是最少的代码:
流水线代码
p| beam.Create([("2","elem2.1"),("1","elem1.1"),("1","elem1.2")]) \
|"group" >>beam.GroupByKey() \
| "log_PCollection_AfterGrouped" >> beam.Map(myRawProcessor.myReader) \
Run Code Online (Sandbox Code Playgroud)
地图变换代码
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
Run Code Online (Sandbox Code Playgroud)
输出
> === === ===
> ('2', ['elem1.1'])
> KeyParam -----> EXPECTED :: '2'
> === === ===
> ('1', ['elem1.2', 'elem1.3'])
> KeyParam ----> EXPECTED :: '1'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |