Ошибка при создании таблицы BigQuery с разделением улья из паркета

# #json #hive #google-bigquery

Вопрос:

Я пытаюсь создать секционированную таблицу BigQuery из источника hive в GCS.

Сначала я создал файл определения:

 bq mkdef   --autodetect   --source_format=PARQUET   --hive_partitioning_mode=AUTO   --hive_partitioning_source_uri_prefix="gs://project-name/tablename"   "gs://project-name/tablename/*.parquet" gt; "def_file_name"  

Затем я попытался создать таблицу:

 bq mk --external_table_definition="lt;definition/file/pathgt;"   "lt;project_idgt;:lt;datasetgt;.lt;table_namegt;"  

Однако команда завершилась ошибкой:

 Error decoding YAML external table definition from file lt;filenamegt;: unacceptable character #x0000: special characters are not allowed in lt;filenamegt;, position 3  

Я замечаю, что в сообщении об ошибке указан YAML, однако файл определения был сгенерирован в формате JSON. Я хотел бы знать, что я делаю не так!

Комментарии:

1. Вы также можете добавить имя файла в качестве примера здесь.

2. Соблюдаете ли вы ограничения для разделов файлов в GCS. Файлы должны быть организованы в папки с шаблоном lt;keygt;=lt;valuegt; секционированных данных. т. е.: gs://myBucket/myTable/dt=2019-10-31/lang=en/ если данные разделены на 2 поля dt и lang . Использование только значений не поддерживается , например gs://myBucket/myTable/2019-10-31/en/ . Кроме того, есть ли у вас какой-либо файл, который не является частью данных в корзине ? уберите его. Пожалуйста, покажите примеры того, как организованы ваши данные (имена папок).