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