嗨,我正在尝试通过Python完成map reduce任务,以便我的程序使用2个参数,它们是字符串和文件夹路径。它应该扫描目录中的所有文件夹,并在其中找到字符串。
我从终端运行我的代码,如下所示:
python mapper.py "AA" /home/habil/Downloads/hadoop_test/ | python reducer.py
它给我的结果如下:
Filename Count
-------- ---------
seq1.txt 153
seq2.txt 48
seq3.txt 83
seq4.txt 93
seq5.txt 102
但是我应该在hdfs中实现它,我对hdfs命令的输入感到困惑,因此我必须给我的代码指定路径路径(以获取文件名),并且hadoop也需要hdfs -input。当我运行以下命令时,出现错误:
hadoop jar /usr/local/hadoop/hadoop-2.9.2/share/hadoop/tools/lib/hadoop-streaming-2.9.2.jar -mapper "mapper.py AA /assignment/hadoop_test/" -reducer reducer.py -input /assignment/hadoop_test/ -output /assignment/hadoop_test/output
如何解决此问题,或者如何直接将Hadoop的输入路径作为参数传递给python中的代码?任何帮助或提示表示赞赏。预先感谢。
答案 0 :(得分:0)
您可以考虑使用sys.stdin来读取mapper.py的输出
import sys
print("You typed", sys.stdin.read())