Sto cercando un po 'di chiarimenti sulle risposte a questa domanda qui:Multiple Output file per Hadoop Streaming con Python Mapper
Generating Separate Output files in Hadoop Streaming
mio caso d'uso è la seguente:
ho un processo mapreduce solo mappa che prende un file di input, esegue parsing e munging e quindi scrive nuovamente. Tuttavia, alcune righe potrebbero non essere in un formato errato e, in tal caso, vorrei scrivere la riga originale in un file separato.
Sembra che un modo per farlo sarebbe quello di anteporre il nome del file alla riga che sto stampando e utilizzare il parametro multipleOutputFormat. Per esempio, se inizialmente avevo:
if line_is_valid(line):
print name + '\t' + comments
ho potuto invece fare:
if line_is_valid(line):
print valid_file_name + '\t' + name + '\t' + comments
else:
print err_file_name + '\t' + line
L'unico problema che ho con questa soluzione è che io non voglio che il nome file di apparire come la prima colonna nei file di testo. Suppongo che potrei quindi eseguire un altro lavoro per rimuovere la prima colonna di ogni file, ma sembra una cosa sciocca. Quindi:
1) È questo il modo corretto di gestire più file di output con un lavoro mapreduce python?
2) Qual è il modo migliore per sbarazzarsi di quella colonna iniziale?
La tua domanda è interessante. Ho tentato di rispondere. Spero che abbia senso. Per favore, rispondi. Grazie! –