È possibile ricevere input da più directory e file utilizzando l'operatore *****. Molto probabilmente è perché l'argomento "arg [0]" non è corretto e quindi non trova i file.
In alternativa, è anche possibile utilizzare InputFormat.addInputPath o se sono necessari formati o mappatori separati è possibile utilizzare la classe MultipleInputs.
Esempio di aggiunta di base un percorso
FileInputFormat.addInputPath(job, myInputPath);
Ecco un esempio di MultipleInputs
MultipleInputs.addInputPath(job, inputPath1, TextInputFormat.class, MyMapper.class);
MultipleInputs.addInputPath(job, inputPath2, TextInputFormat.class, MyOtherMapper.class);
Questa altra domanda è anche molto simile e ha buone risposte, Hadoop to reduce from multiple input formats.
Quindi leggerà dalle cartelle multiple all'interno di una cartella e in modo ricorsivo i molti file all'interno di ciascuna sottocartella ?? – JudyJiang
Mi sono sbagliato e ho aggiornato la mia risposta per riflettere questo. Immagino che il tuo "arg [0]" sia sbagliato. da dove lo stai usando? se è la riga di comando potresti aver bisogno di $ arg [0], se è da codice dovresti usare l'approccio multipleinputs – greedybuddha
È nel mio codice java. Ho usato FileInputFormat.setInputPaths (conf, new Path (args [0]), è l'args [0] e qualcosa dopo di esso che dovrei sostituire la parte con più directory? – JudyJiang