【发布时间】:2014-11-08 10:42:03
【问题描述】:
我有一份 hadoop 流式传输工作。该作业使用导入另一个 python 脚本的 python 脚本。该命令在命令行中运行良好,但在使用 hadoop 流时失败。这是我的hadoop流命令的示例
hadoop jar $streamingJar \
-D mapreduce.map.memory.mb=4096 \
-files preprocess.py,parse.py \
-input $input \
-output $output \
-mapper "python parse.py" \
-reducer NONE
这是 parse.py 的第一行
from preprocess import normalize_large_text, normalize_small_text
当我通过 hadoop 流运行命令时,我在日志中看到以下输出
Traceback (most recent call last):
File "preprocess.py", line 1, in <module>
from preprocess import normalize_large_text, normalize_small_text, normalize_skill_cluster
ImportError: No module named preprocess
我的理解是hadoop把所有文件放在同一个目录下。如果这是真的,那么我看不出这怎么会失败。有谁知道怎么回事?
谢谢
【问题讨论】:
标签: python hadoop hadoop-streaming