使用beam、python和Avro模式读取大查询表

2024-09-30 01:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我将apachebeamsdk从2.5.0改为2.12.0,并在使用python从beam中的大查询读取表时出现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

安装的程序包:

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


Tags: nameioschematype错误tablenotargs
1条回答
网友
1楼 · 发布于 2024-09-30 01:34:48

这是avro1.9.0中的回归。这个问题的跟踪者在这里:https://issues.apache.org/jira/browse/AVRO-2429

如果您使用的是python2,那么应该可以通过执行pip install "avro==1.8.2"将其降级到1.8.2。如果您使用的是python3,我相信beam应该在默认情况下尝试使用fastavro(它不应该有您遇到的bug)。你知道吗

相关问题 更多 >

    热门问题