Я пытаюсь импортировать данные в BigQuery через AVRO с разделом Date. При импорте через cli ошибка, связанная с секционированной датой, должна быть датой или отметкой времени, но она получает целое число.
С учетом файла AVRO, аналогичного приведенному ниже:
{
"namespace": "test_namespace",
"name": "test_name",
"type": "record",
"fields": [
{
"name": "partition_date",
"type": "int",
"logicalType": "date"
},
{
"name": "unique_id",
"type": "string"
},
{
"name": "value",
"type": "double"
}
}
Затем я использую следующие команды через интерфейс командной строки, чтобы попытаться создать новую таблицу
bg load \
--replace \
--source_format=AVRO \
--use_avro_logical_types=True \
--time_partitioning_field partition_date \
--clustering_fields unique_id \
mydataset.mytable \
gs://mybucket/mydata.avro
Ожидается, что новая таблица будет разбита на столбец «Дата» «partition_date», а затем сгруппирована по « unique_id ".
Редактировать: Пожалуйста, смотрите ошибку ниже
The field specified for the time partition can only be of type TIMESTAMP or DATE. The type found is: INTEGER.
Точная команда, которую я использую, выглядит следующим образом:
bq load --replace --source_format=AVRO --use_avro_logical_types=True --time_partitioning_field "partition_date" --clustering_fields "unique_id" BQ_DATASET BUCKET_URI
Это схема AVRO, которая Я использую
{
"namespace": "example.avro",
"type": "record",
"name": "Test",
"fields": [
{ "name": "partition_date", "type": "int", "logicalType": "date" },
{ "name": "unique_id", "type": "string"},
{ "name": "value", "type": "float" }
]
}
Стоит отметить, что это старый проект Google (примерно 2-3 года), если это имеет какое-либо отношение.
Я также на windows 10 с последним Google SDK.