Tło:
Mam kilka plików gzip w katalogu HDFS. Pliki te mają nazwy w formacie rrrr-mm-dd-000001.gz, rrrr-mm-dd-000002.gz i tak dalej.
Cel:
Chcę zbudować skrypt ulowy, który tworzy tabelę z kolumnami: Kolumna 1 - data (rrrr-mm-dd), Kolumna 2 - całkowity rozmiar pliku.
Mówiąc konkretnie, chciałbym podsumować rozmiary wszystkich plików gzip dla konkretnej daty. Suma będzie wartością w kolumnie 2 i datą w kolumnie 1.
czy to możliwe? Czy są jakieś wbudowane funkcje lub UDF, które mogą mi pomóc w moim przypadku użycia?
Z góry dziękuję!
Odpowiedzi:
0 dla odpowiedzi № 1Zadanie MapReduce do tego nie wydaje się skuteczne, ponieważ nie musisz ładować żadnych danych. Dodatkowo zrobienie tego wydaje się niezręczne w Hive.
Czy możesz napisać skrypt bash lub skrypt Pythona lub coś podobnego do parsowania danych wyjściowych hadoop fs -ls
? Wyobrażam sobie coś takiego:
$ hadoop fs -ls mydir/*gz | python datecount.py | hadoop fs -put - counts.txt