L'HDFS “-appendToFile” corrompe l'ultima riga del file


0

In breve, ecco il mio codice di esempio.

file1 = file delimitato da CSV, diciamo, 1000 righe

file2 = file delimitato da CSV, diciamo, 3000 righe

file3 = file delimitato da CSV, diciamo, 10000 righe


hdfs dfs -put file1 / home / new_hdfs_file

hdfs dfs -appendToFile file2 / home / new_hdfs_file

hdfs dfs -appendToFile file3 / home / new_hdfs_file


Quando applico i seguenti comandi, l'ultima riga di ogni appendToFile viene corrotta e cambia i dati, a volte li duplica, a volte ne rimuove parti. Il punto è che corrompe l'ultima riga.

Ad esempio, le righe 1000, 4000 (1000 + 3000) e 14000 sarebbero danneggiate. Non posso spiegarlo affatto. Sembra che a hdfs non piaccia aggiungere file CSV. Il motivo è che ho file gigabyte, non kilobyte. E non posso tenerlo così tanto in memoria.

Qualcun altro lo sperimenta? C'è un modo per aggirarlo?


Quale sistema operativo stai usando? I tuoi file terminano con terminatori di linea?
Scott

Sistema operativo Linux, e lo fanno. Tutte le linee sono uguali sul lato Linux e terminano in \ n. Ma aggiungendo a HDFS, viene buttato via. Non ho ancora provato come separatore di righe.
DoctorDawg,

Un'altra particolarità è che aggiunge \ x00 per queste righe danneggiate durante la lettura da Python.
DoctorDawg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.