Big Query не может запрашивать некоторые csvs в облачном хранилище - PullRequest
0 голосов
/ 16 июня 2019

Я создал постоянную таблицу Big Query, которая считывает некоторые CSV-файлы из облачного хранилища с общим именем префикса (имя файла * .csv) и той же схемой.В любом случае есть некоторые csv, которые делают сбойные запросы BigQuery с сообщением, подобным следующему: "Ошибка при чтении таблицы: xxxx.xxxx.xxx, сообщение об ошибке: таблица CSV ссылается на позицию столбца 5, но строка начинается с позиции: 10содержит только 2 столбца . Перемещая все csvs один за другим из корзины, я разработал ответственную за это. Этот файл csv не имеет 10 строк ... Я нашел этот билет Ошибка BigQuery, когдазагрузка файла csv из облачного хранилища Google , поэтому я подумал, что проблема заключалась в том, что в конце была пустая строка. Но другие csvs в моем баге делают, так что это не может быть причиной. С другой стороны, это csvединственный с типом контента text / csv; charset = utf-8 , остальные * text / csv , application / vnd.ms-excel , application / octet-stream . Кроме того, загружая этот csv на мой локальный компьютер с Windows и загружая его снова в облачное хранилище, тип контента автоматически преобразуется в application / vnd.ms.-excel .Тогда даже с отсутствующей строкой Big Query может затем запросить постоянную таблицу на основе имени файла * .csvs.Возможно ли, что у BigQuery возникли проблемы с запросом csvs с кодировкой UTF-8, или это просто совпадение?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Просто чтобы заметить проблему, CSV-файл имел кодировку gzip, из-за чего BigQuery не интерпретировал как CSV-файл.

Согласно документации BigQuery ожидает, что данные CSV будут в кодировке UTF-8 :

"encoding": "UTF-8"

Кроме того, поскольку эта проблема связана с метаданными файлов вGCS вы можете редактировать метаданные непосредственно из консоли.

0 голосов
/ 17 июня 2019

Используйте Google Cloud Dataprep для загрузки вашего CSV-файла. Как только файл загружен, проанализируйте данные и очистите их, если требуется. Как только все строки очищены, вы можете погрузить эти данные в BQ.

Dataprep - это инструмент ETL на основе графического интерфейса, который выполняет внутреннее задание потока данных.

Дайте мне знать, если понадобятся дополнительные разъяснения.

...