这是因为
BigQuerySource
退货
PCollection
dict
),其中字典中的每个键表示一列。对于你的情况,最简单的方法就是申请
beam.Map
之后
beam.io.Read(beam.io.BigQuerySource(query=query, use_standard_sql=True)
这样地:
lines = (p
|"ReadFromBigQuery" >> beam.io.Read(beam.io.BigQuerySource(query=query, use_standard_sql=True))
| "Extract text column" >> beam.Map(lambda row: row.get("text_column"))
)
如果遇到列名问题,请尝试将其更改为
u"text_column"
您可以修改
分裂
转换以提取其中列的值:
'Split' >> (beam.FlatMap(lambda x: re.findall(r'[A-Za-z\']+', x.get("text_column")))
.with_output_types(unicode))