![](/img/trans.png)
[英]Read and write avro files by inferring schema using Python SDK in Google Cloud Dataflow - Apache Beam
[英]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.