Прочитать таблицу Big Query со схемой Avro, используя beam, python
Я изменил apache-beam SDK с 2.5.0 на 2.12.0 и получил ошибку схемы Avro при чтении таблицы из Big Query в луче с использованием python.
В таблице 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
1 ответ
Это регрессия в avro
1.9.0. Отслеживание проблем для этого здесь: https://issues.apache.org/jira/browse/AVRO-2429
Если вы находитесь на Python 2, вы должны быть в состоянии понизиться до 1.8.2, выполнив pip install "avro==1.8.2"
, Если вы на Python 3, я считаю, что луч должен попробовать использовать fastavro
по умолчанию (в которой не должно быть ошибки, с которой вы столкнулись).