API загрузки BigQuery - есть ли способ добавить несколько нулевых маркеров? - PullRequest
0 голосов
/ 18 декабря 2018

Я использую Python API для загрузки данных TSV в BigQuery , но я столкнулся с ситуацией, когда у моего TSV есть куча "."и знаки "-", я хочу рассматривать оба как NULL.

Я знаю, что могу установить LoadJobConfig() атрибут с именем null_marker в строку, и эта строка будет обрабатываться как NULL во время загрузки.

Из документации :

[Необязательно] Указывает строку, представляющую нулевое значение в файле CSV.Например, если вы укажете «\ N», BigQuery интерпретирует «\ N» как нулевое значение при загрузке файла CSV.Значением по умолчанию является пустая строка.Если для этого свойства задано пользовательское значение, BigQuery выдает ошибку, если для всех типов данных присутствует пустая строка, кроме STRING и BYTE.Для столбцов STRING и BYTE BigQuery интерпретирует пустую строку как пустое значение.

Вопрос: Но есть ли способ использования нескольких нулевых маркеров?

Файлы, с которыми я работаю, очень большие, и неэффективно идти через файл и заменять «-» на «.»или наоборот.

1 Ответ

0 голосов
/ 18 декабря 2018

null_marker не предназначен для этого.

Вы должны позволить всему импорту перейти в BigQuery, затем выполнить запрос и переписать ту же таблицу со значениями NULLed.

При использовании потокового API вы уже загружаете файлы построчно, и, следовательно, вы также можете изменить их на своей стороне.Если вы загружаете файлы, вы можете захотеть пересмотреть это автоматически, используя GCS -> Облачные функции -> BigQuery (и, опционально) -> Запросить и переписать таблицу также со значениями NULL.Для этого вам нужно только опубликовать ваши файлы в GCS, и там они автоматически будут загружены, файлы могут быть сохранены или удалены с помощью функции, а функция также может инициировать дополнительные шаги, такие как перезапись со значениями NULL.

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