Birden çok dizin ve dosyadan gelen bilgileri ***** operatörü kullanarak alabilirsiniz. Büyük olasılıkla çünkü "arg [0]" argümanı doğru değildir ve bu yüzden dosyaları bulamıyor.
Alternatif olarak, InputFormat.addInputPath özelliğini de kullanabilirsiniz ya da ayrı biçimlere veya mappers'a ihtiyacınız varsa MultipleInputs sınıfı kullanılabilir. Temel bir yol Burada
FileInputFormat.addInputPath(job, myInputPath);
ekleme
Örnek, Hadoop to reduce from multiple input formats Bu, diğer bir soru da çok benzer MultipleInputs
MultipleInputs.addInputPath(job, inputPath1, TextInputFormat.class, MyMapper.class);
MultipleInputs.addInputPath(job, inputPath2, TextInputFormat.class, MyOtherMapper.class);
bir örneğidir ve iyi cevap vermektedir.
Bu nedenle, bir klasör içindeki birden çok klasörden ve alt klasörün her birindeki yinelenen dosyaları okuyacaktır. – JudyJiang
Yanıldım ve bunu yansıtmak için cevabımı güncelledim. "Arg [0]" ın yanlış olduğunu tahmin ediyorum. Bunu nereden kullanıyorsun? eğer komut satırı $ arg [0] 'a ihtiyaç duyabiliyorsa, eğer koddan geliyorsa çoklu girişleri kullanmalısınız – greedybuddha
Bu benim java kodumda. FileInputFormat.setInputPaths (conf, new Path (args [0]) kullandım, args [0] ve ondan sonra birden çok dizin parçası değiştirmem gereken bir şey var mı? – JudyJiang