Redshift COPY Invalid di git, Value '"', Pos 0, Type: Long - PullRequest
0 голосов
/ 01 мая 2020

Я создал CSV-файл, используя spark следующим образом:

t1.write.option ("sep", "\ 001"). Mode ("overwrite"). Format ("csv"). Save ("s3: // test123 / testcsv001 /")

И затем попытался выполнить команду COPY в Redshift для загрузки файла CSV:

скопировать schema123.table123 из 's3: // test123 / testcsv001 / 'access_key_id' удален 'secret_access_key' удален 'session_token' удален 'TIMEFORMAT' auto 'DATEFORMAT' auto 'DELIMITER' \ 001 'IGNOREHEADER AS 0 TRUNCATECOLUMNS NULL как' NULL 'TRIMBLANKS ONCUPELLUPE ПРЕДУПРЕЖДЕНИЕ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЕННЫМ ФУНКЦИОНИРОВАНИЕМ ОБЪЕДИНЕНИЯ С ТРАМБЛАНКАМИ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЕННЫМ ФУНКЦОМ ОБЪЕДИНЯЕТСЯ ВЫПОЛНЯЕТСЯ ОБЪЕДИНЕНИЕМ ОБЪЕДИНЕНИЯ ОБЪЕДИНЕННЫХ УЧАСТНИКОВ 100%

Команда не выполняется для записей, в которых первый столбец имеет нулевое значение. Первый столбец в искре имеет определение столбца LONG. Целевой столбец является BIGINT без ограничения NOT NULL. Я привел столбец к INT в искре и записал его в csv, и он все еще не удался по той же причине.

Для документации по красному смещению загрузка NULL в BIGINT должна работать нормально.

Любое понимание этого?

1 Ответ

0 голосов
/ 02 мая 2020

Вы устанавливаете NULL как «NULL». Это означает, что если в исходном файле есть строка «NULL», это означает, что значение равно NULL. Итак, когда ваш входной файл имеет "" в качестве входных данных для bigint, что предполагается делать в Redshift? Вы сказали, что дадите ему «NULL», когда значение равно NULL.

Я ожидаю, что вы хотите NULL AS '', и вам также следует установить тип файла в CSV, чтобы применялись стандартные правила CSV.

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