Прочитать таблицу Big Query со схемой Avro, используя beam, python - PullRequest
3 голосов
/ 01 июля 2019

Я изменил 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 Ответ

2 голосов
/ 01 июля 2019

Это регрессия в 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 по умолчанию (в котором не должно быть ошибки, с которой вы столкнулись).

...