Указание escape-символов при импорте в BigQuery. Msgstr "Ошибка: данные между закрытой двойной кавычкой (") и разделителем полей. " - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь импортировать большое количество CSV-файлов в Google BigQuery.

Один из моих столбцов String иногда содержит массив, содержащий двойные кавычки, которые экранируются с помощью \. Пример:

... ,"{\"ex1\":\"somestuffhere\"\,\"ex2\":\"somestuffhere\"\,\"ex3\":\"somestuffhere\"}", ...

Я считаю, что проблема вызвана тем, что BigQuery по умолчанию ожидает, что двойные кавычки будут экранированы другой двойной кавычкой - "". Я экспериментировал с отправкой различных параметров в аргумент --quote, но он не работает, как я надеялся.

Текущая команда загрузки командной строки, которую я пытаюсь:

bq load --noreplace --skip_leading_rows=1 --allow_jagged_rows='true' --ignore_unknown_values='true' --quote='"' --source_format=CSV TestDataset.cmdLineTest gs://s3_data_transfers/Events_10422/LIVE/* myschema.json

Можно ли как-нибудь заставить платформу принять эти строки? Или я вынужден исследовать этапы предварительной обработки? Эта таблица будет обновляться каждый день в зависимости от отправки нового csv, поэтому в идеале стараемся свести к минимуму количество шагов предварительной обработки.

Спасибо!

1 Ответ

0 голосов
/ 25 января 2019

Я думаю, что эта проблема связана с аргументом --quote, который вы уже указали.Так как " является значением по умолчанию для цитирования разделов данных CSV, это бессвязно, если ваши данные содержат ".Я тестировал с некоторыми похожими данными (с \"), и BigQuery возвращает ту же ошибку:

Error: Data between close double quote (") and field separator.

Решением для этого является указание флага --quote другому символу (таким образом,непоследовательность будет решена).В моем случае это работало с '.У меня сработала следующая команда:

bq --location=US load --autodetect --source_format=CSV --quote "'" MY_DATASET.MY_TABLE MY_CSV_FILE

Убедитесь, что ваши данные не содержат ', в противном случае вы должны найти другой символ для этого или установить его в пустую строку в качестве состояний документации.Подробнее об этом флаге см. в этом документе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...