Spark: чтение файлов с PERMISSIVE и предоставленной схемой - проблемы со столбцом поврежденных записей - PullRequest
0 голосов
/ 21 января 2019

Я читаю искру CSV. Я предоставляю схему для файла, который я читаю, и я читаю его в разрешающем режиме. Я хотел бы сохранить все записи в columnNameOfCorruptRecord (в моем случае в поврежденном_отчете).

Я прошел через ад, чтобы настроить это, и все еще получаю предупреждения, что я не могу подавить то, что мне не хватает.

Итак, сначала для того, чтобы получить столбец corpted_records, мне нужно было добавить его в схему как StringType. Это задокументировано, так что все в порядке. Но всякий раз, когда я читаю файл, появляется предупреждение о том, что схема не совпадает, потому что количество столбцов отличается. Это всего лишь предупреждение, но оно заполняет мои журналы.

Также, когда есть поле, которое не может быть обнуляемо, и есть поврежденная запись, поврежденная запись отправляется в столбец коррупции и все ее поля устанавливаются в ноль, поэтому я получаю исключение, потому что у меня есть поле, не обнуляемое. Единственное, что нужно решить, это установить, что столбцы не обнуляются. Что довольно странно.

Я что-то упустил?

Резюме:

  1. Есть ли способ игнорировать предупреждение, когда я добавляю столбец в схеме
  2. Есть ли способ использовать Режим PERMISSIVE и столбец corpted_records со схемой, которая имеет необнуляемые поля.

Спасибо!

1 Ответ

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

Следующая документация может помочь.Было бы здорово, если бы вы хотя бы предоставили код, который вы написали.https://docs.databricks.com/spark/latest/data-sources/read-csv.html

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