'NULL' значение VARCHAR (30) NOT NULL обрабатывается как ноль при загрузке bq - PullRequest
0 голосов
/ 29 июня 2018

Я пытался загрузить CSV-файлы в таблицу BigQuery. Существуют столбцы, в которых типы VARCHAR (30) NOT NULL, а некоторые значения - NULL. Поэтому, когда я использую команду bq load для загрузки, получаю следующую ошибку:

Ошибка при чтении данных, сообщение об ошибке: «NULL» является нулевым для обязательного

Я хочу рассматривать значение NULL как NOT NULL. Мне интересно, каковы лучшие решения для борьбы с этим.

1 Ответ

0 голосов
/ 29 июня 2018

В таких случаях лучше обрабатывать данные перед их импортом в BigQuery. Вы можете использовать Cloud Dataprep , чтобы обработать значения NULL и преобразовать их в пустые строки или что угодно. Вы можете выполнить следующие действия:

  1. В консоли Cloud перейдите к Dataprep
  2. Создать поток
  3. Добавление набора данных (импорт CSV-файла)
  4. Создать новый рецепт
  5. При преобразовании выберите «Заменить»
  6. Выберите столбец данных о происхождении
  7. Под шаблоном Match добавьте следующее регулярное выражение /^$/ (это будет соответствовать пустым строкам)
  8. Выберите новое значение строки, которое вы считаете нужным

После завершения задания вы можете экспортировать результаты в формате csv и импортировать их в BigQuery.

Обратите внимание, что Dataprep обрабатывает значения NULL как MISSING, как указано в документации

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