2012-01-17 16 views
10

Chcę, aby pliki wyjściowe miały format 2012117-part-r-00000. Zasadniczo chcę, aby plik wyjściowy miał dołączoną do niego datę, dzięki czemu mogę uporządkować pliki według daty. Spojrzałem na OutputFormat i FileOutputFormat, ale to nie pomaga mojej sprawie.jak nadać niestandardową nazwę plikom wyjściowym hadoopu

Odpowiedz

5

W nazwie pliku wyjściowego zlecenia MR nie ma zbyt dużej elastyczności. Użyj podklas z MultipleOutputFormat.

Należy zaimplementować metodę MultipleOutputFormat#generateFileNameForKeyValue, zignorować wejścia do tej metody i zwrócić ciąg znaków w wzorze date + -part-r- + mapred.task.partition. mapred.task.partition jest int, więc musi być odpowiednio dopełniony z zerami.

+0

Czy istnieje łatwy sposób, w jednym z wcześniejszych wydań Chyba mieliśmy możliwość jak FileOutputFormat.setOutputName (JobConf zadanie, nazwa ciągu); Również moja klasa reduktorów już rozszerza Reducer, więc będzie mi zależało na rozszerzeniu kolejnej klasy. – RFT

+0

Nie widzę tego w interfejsie API Hadoop. –

+0

OK, ale jak już wspomniałem, moja klasa reduktorów już rozszerza kolejną klasę, czy mogę dołączyć klasę statyczną i czy ta klasa rozszerzyć MultipleOutputFormat, a następnie wywołać klasę skądś? – RFT

Powiązane problemy