Попытка найти все строки, имеющие совпадающую строку в файле, затем сохранить результат в файле в отдельном каталоге в HAD oop HDFS. - PullRequest
0 голосов
/ 22 января 2020

У меня есть файл SimpleInput.txt внутри SimpleDir каталога в HDFS. Я хочу вывести все строки в этом файле, который содержит слова ' texas '. После этого мне нужно сохранить результат в каталоге SimpleOutput , который должен находиться внутри SimpleDir.

Я создал каталог SimpleOutput внутри SimpleDir.

Я пробовал много команд, таких как:

hdfs dfs -cat /SimpleDir/SimpleInput.txt | grep -i "texas"

С этим я могу печатать все строки, имеющие слово 'texas', но не могу сохранить результат в каталоге SimpleOutput.

Другое Я также пробовал эту команду:

hdfs dfs -cat /SimpleDir/SimpleInput.txt | grep -i "texas" /SimpleDir/SimpleOutput

Это показывает это:

grep: /SimpleDir/SimpleOutput: No such file or directory
cat: Unable to write to output str

Ответы [ 2 ]

1 голос
/ 22 января 2020

Вам нужно перенаправить вывод в grep в файл

hdfs dfs -cat /SimpleDir/SimpleInput.txt | grep -i "texas" > /SimpleDir/SimpleOutput

Затем вы должны использовать hdfs put для загрузки локального файла.

В качестве альтернативы, то же самое можно сделать в Spark с использованием функции фильтра

0 голосов
/ 22 января 2020

Эта проблема решена с помощью:

hadoop org.apache.hadoop.examples.Grep /SimpleDir/SimpleInput.txt /SimpleDir/SimpleOutput .*texas*.
...