Как заставить файлы игнорировать ошибку новой строки при загрузке в красное смещение из s3 - PullRequest
0 голосов
/ 07 июня 2019

У меня есть куча файлов, которые копируются из s3 в красное смещение по расписанию каждый день, и я получаю сообщение об ошибке. Отсутствует символ новой строки: неожиданный символ 0x3a найден в местоположении 48 (тип и расположение символов различаются) в последней строке многих из файлы. Несмотря на то, что эти ошибки указывают на разные символы в необработанной строке, я полагаю, что это связано с тем фактом, что файлы, которые я использую, не имеют символа новой строки в конце файла (в последней строке файла) , Эти файлы не копируются отдельно, оператор копирования использует префикс для массового копирования файлов из s3 в красное смещение:

COPY schema.table FROM 
's3://bucket/prefix'  
iam_role 'iam_role_specfic' delimiter '|' 
`escape IGNOREBLANKLINES TRIMBLANKS BLANKSASNULL ACCEPTINVCHARS EMPTYASNULL` TRUNCATECOLUMNS FILLRECORD null as '\0'

files in S3 bucket:
prefix_25-character-guid-1234567
prefix_25-character-guid-2345678
prefix_25-character-guid-3456789

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

Мне интересно, как этого избежать. То есть что я должен сказать s3 (в приведенном выше операторе копирования), чтобы он мог с этим справиться?

...