szukam małego wyjaśnienia w sprawie odpowiedzi na to pytanie tutaj:Multiple Output pliki do Hadoop Streaming z Pythona Mapper
Generating Separate Output files in Hadoop Streaming
Moje przypadek użycia jest następujący:
mam map-only mapreduce zadanie, które pobiera plik wejściowy, wykonuje wiele analiz i mangi, a następnie zapisuje z powrotem. Jednak niektóre wiersze mogą, ale nie muszą być w niewłaściwym formacie, a jeśli tak jest, chciałbym zapisać oryginalny wiersz w osobnym pliku.
Wygląda na to, że jednym ze sposobów jest dodanie nazwy pliku do drukowanej linii i użycie parametru multipleOutputFormat. Na przykład, gdybym miał pierwotnie:
if line_is_valid(line):
print name + '\t' + comments
mogłem zamiast zrobić:
if line_is_valid(line):
print valid_file_name + '\t' + name + '\t' + comments
else:
print err_file_name + '\t' + line
Jedyny problem mam z tego rozwiązania jest to, że nie chcą nazwa_pliku pojawiać się jako pierwszej kolumnie w plikach tekstowych. Przypuszczam, że mógłbym wtedy uruchomić inną pracę, aby usunąć pierwszą kolumnę każdego pliku, ale wydaje się to trochę głupie. A więc:
1) Czy jest to właściwy sposób zarządzania wieloma plikami wyjściowymi za pomocą zadania Pythona mapreduce?
2) Jaki jest najlepszy sposób na pozbycie się tej początkowej kolumny?
Pytanie jest interesujące. Próbowałem odpowiedzieć. Mam nadzieję, że to ma sens. Proszę, odpowiedz. Dzięki! –