我在机器上使用 MRJob A
在机器上启动 MapReduce 作业 B_0
直通 B_10
.该作业具有依赖项,要求它不使用默认值 /bin/python
运行。 (即 which python
在机器 A
上的输出)但带有 /path/to/weird/python
,存在于 B
的但不在 A
.
我怎么告诉mrjob
使用 /bin/python
在本地启 Action 业,但 /path/to/weird/python
在 B
上运行它一旦它在 Hadoop 集群中?--interpreter
争论似乎决定了本地和 Hadoop 的解释器。是否有另一种选择来单独指定它们?
或者是否有某种原因使用的解释器必须位于两台机器上的同一路径?
最佳答案
在 Python 文件的顶部添加一个 shebang 行,告诉系统要使用哪个 Python 环境。
使用 env 标签允许本地机器和 Hadoop 集群访问正确的解释器,而无需明确说明位置,例如:
!/usr/bin/env python
或者
!/usr/bin/env python3
关于python - MRJob 为本地 vs. hadoop 使用不同的 Python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34598455/