2012-01-17 12 views
10

Çıkış dosyalarını 2012117-part-r-00000 biçiminde istiyorum. Temel olarak, çıktı dosyasının tarihe göre olmasını istiyorum, böylece dosyaları tarihe göre düzenleyebilirim. OutputFormat ve FileOutputFormat'a baktım, ancak vakamın yardımcı olmuyor.hadoop çıktı dosyalarına nasıl özel bir ad verilir

cevap

5

MR işinin çıktı dosya adında fazla esneklik yok. MultipleOutputFormat'un alt sınıflarını kullanın.

MultipleOutputFormat#generateFileNameForKeyValue yönteminin uygulanması gerekir, bu yönteme ait girdileri yok sayar ve date + -part-r- + mapred.task.partition modelinde bir dize döndürür. mapred.task.partition bir int, bu yüzden 0 ile uygun şekilde önceden doldurulmuş olması gerekir.

+0

Bence FileOutputFormat.setOutputName gibi seçeneği vardı sanırım önceki sürümlerin birinde, kolay bir yolu yoktur IS (JobConf için öğrendim iş, dize adı); Ayrıca, redüktör sınıfım zaten Reducer'ı genişletiyor, bu yüzden başka bir dersi uzatmam benim için olacak. – RFT

+0

Bunu Hadoop API'sinde görmüyorum. –

+0

Tamam, ama redüktör sınıfım zaten bir başka dersi de eklediğimde, bir statik sınıf ekleyebilir ve bu sınıfa MultOutputFormat'ı genişletebilir ve sonra sınıfı bir yerden arayabilir miyim? – RFT

İlgili konular