繁体   English   中英

使用 Beam、python 读取带有 Avro 架构的 Big Query 表

[英]Read Big Query table with Avro schema using beam, python

我将 apache-beam SDK 从 2.5.0 更改为 2.12.0,并在使用 python 从 Beam 中的 Big Query 读取表时出现 Avro 模式错误。

BQ 表有一个 TIMESTAMP 字段,其他都是 STRING。

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

安装的软件包:

python=2.7.0,apache-beam=2.12.0,avro=1.9.0

这是avro 1.9.0 中的回归。 问题跟踪器在这里: https : //issues.apache.org/jira/browse/AVRO-2429

如果您使用的是 python 2,您应该可以通过pip install "avro==1.8.2"降级到 1.8.2。 如果您使用的是 python 3,我相信梁应该默认尝试使用fastavro (它不应该有您遇到的错误)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM