对于python Hadoop流作业,我如何将参数传递给(例如)reducer脚本,以使其根据传入的参数而表现不同?
我了解流作业的格式为:
hadoop jar hadoop-streaming.jar-输入-输出-映射器mapper.py -reducer reducer.py ...
我想影响reducer.py。
最佳答案
命令行选项-reducer
的参数可以是任何命令,因此您可以尝试:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
-input inputDirs \
-output outputDir \
-mapper myMapper.py \
-reducer 'myReducer.py 1 2 3' \
-file myMapper.py \
-file myReducer.py
假设
myReducer.py
可以执行。免责声明:我没有尝试过,但是之前我已经将类似的复杂字符串传递给-mapper
和-reducer
。也就是说,您是否尝试过
-cmdenv name=value
选项,只是让您的Python reducer从环境中获得值(value)?这只是做事的另一种方式。
关于python - 如何将参数传递给python Hadoop流作业?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9509063/