Potrzebuję pętli nad wszystkimi plikami csv w systemie plików Hadoop. Mogę listę wszystkich plików w katalogu HDFS zPętla bash nad plikami w katalogu hdfs
> hadoop fs -ls /path/to/directory
Found 2 items
drwxr-xr-x - hadoop hadoop 2 2016-10-12 16:20 /path/to/directory/tmp
-rwxr-xr-x 3 hadoop hadoop 4691945927 2016-10-12 19:37 /path/to/directory/myfile.csv
i pętla może ponad wszystkie pliki w standardowym katalogu z
for filename in /path/to/another/directory/*.csv; do echo $filename; done
ale jak mogę połączyć dwa? Próbowałem
for filename in `hadoop fs -ls /path/to/directory | grep csv`; do echo $filename; done
ale to daje mi jakieś bzdury jak
Found
2
items
drwxr-xr-x
hadoop
hadoop
2
2016-10-12
....
'Hadoop FS -ls/ścieżki do/katalog/| grep csv' powinien dać ci listę linii standardowych, niekoniecznie tylko nazwy plików. –
Zobacz w innym pytaniu ładny sposób na pętlę: http://stackoverflow.com/questions/28685471/loop-through-hdfs-datalogories –