Split CSV в Linux для загрузки в Redshift
У меня есть огромный (5 ТБ) CSV-файл, который мне нужно загрузить в таблицу в AWS Redshift.
Я попытался разделить файл на основе количества строк и размера следующим образом:
split -l 50000000 myCSV.csv myCSV.csv_part_
а также
split -b 1024m myCSV.csv myCSV.csv_part_
после разделения, когда я пытался загрузить их в Redshift, я получаю следующую ошибку:
ERROR: Failed writing body (0 != 16347) Cause: Failed to inflateinvalid or incomplete deflate data. zlib error code: -3
Затем я попытался разделить мой файл с помощью следующей команды, и он успешно загрузился в таблицу в Redshift:
sed -n "1,50000000 p" myCSV.csv > myCSV_part_1.csv
Последний способ сработал, но я должен изменить номера строк и номера деталей, что отнимает много времени и увеличивает вероятность ошибок.
лучше?
Если я пытаюсь загрузить большой кусок, запрос никогда не останавливается.