В Avro логические типы данных должны включать attribute logicalType
, возможно, это поле не включено в определение вашей схемы.
Здесь Есть пара примеров, подобных следующему. Насколько я знаю, тип может быть int или long, но логический тип должен быть датой:
{
'name': 'DateField',
'type': 'int',
'logicalType': 'date'
}
Как только логический тип данных установлен, попробуйте еще раз. В документации указано, что она должна работать:
Avro logical type --> date
Converted BigQuery data type --> DATE
В случае, если вы получили ошибку, было бы полезно проверить схему вашего файла avro, вы можете использовать эту команду, чтобы получить ее детали:
java -jar
avro-tools-1.9.2.jar
getschema my-avro-file.avro
ОБНОВЛЕНИЕ
Для случаев, когда одна ДАТА не работает, учтите, что TIMESTAMP может хранить дату и время с количеством микро / нано секунд с unix эпохи, 1 января 1970 г. 00: 00: 00.000000 UT C (UT C, кажется, по умолчанию для авро). Кроме того, значения, хранящиеся в файле avro (типа DATE o TIMESTAMP), не зависят от конкретного часового пояса, в этом смысле он очень похож на тип данных BigQuery Timestamp .