我将apache-beam SDK从2.5.0更改为2.12.0,并在使用python从beam中的Big Query中读取表时出现了Avro模式错误。
BQ表有一个时间戳字段,其他字段是字符串。
data = pipe \
| 'read bigquery' >> beam.io.Read(
beam.io.BigQuerySource(
dataset=args.dataset_name,
table=args.table_name,
use_standard_sql=True))
错误:
SchemaParseException: Type property "[u'null', {u'logicalType': u'timestamp-micros', u'type': u'long'}]" not a valid Avro schema: Union item must be a valid Avro schema: Currently does not support timestamp-micros logical type
已安装的程序包:
束,apache- python=2.7.0 =2.12.0,avro=1.9.0
发布于 2019-07-01 14:35:11
这是avro
1.9.0中的回归。这个问题的跟踪器在这里:https://issues.apache.org/jira/browse/AVRO-2429
如果你使用的是Python2,你应该可以通过执行pip install "avro==1.8.2"
来降级到1.8.2。如果你使用的是Python3,我相信beam应该在默认情况下尝试使用fastavro
(这应该不会有你遇到的bug )。
https://stackoverflow.com/questions/56837044
复制相似问题