В двух словах, вот мой пример кода.
file1 = CSV файл с разделителями, скажем, 1000 строк
file2 = CSV файл с разделителями, скажем, 3000 строк
file3 = CSV файл с разделителями, скажем, 10000 строк
hdfs dfs -put file1 /home /new_hdfs_file
hdfs dfs -appendToFile file2 /home /new_hdfs_file
hdfs dfs -appendToFile file3 /home /new_hdfs_file
Когда я применяю следующие команды, последняя строка каждого appendToFile повреждается, и он изменяет данные, иногда дублирует их, иногда удаляет их части. Дело в том, что это портит последнюю строку.
Например, строки 1000, 4000 (1000+3000) и 14000 будут повреждены. Я не могу объяснить это вообще. Похоже, hdfs не любит добавлять файлы CSV. Причина для этого в том, что у меня есть файлы гигабайтами, а не килобайтами. И не может держать так много в памяти.
Кто-нибудь еще испытывает это? Есть ли способ обойти это?