对于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/

10-16 05:28