在 oozie 中添加 pyspark python 路径

Adding pyspark python path in oozie

我正在尝试使用 Hue 在 Oozie 上 运行 一个简单的 python 脚本。我正在使用安装的 anaconda 包裹,所以我还在 Cloudera 管理器中添加了 spark 配置(Spark Service Advanced Configuration Snippet (Safety Valve) for spark-conf/spark-env.sh)

if [ -z "${PYSPARK_PYTHON}" ]; then
export PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python
fi

当 运行 完成作业时,出现 python 错误 导入错误:没有名为 pandas.io.json 的模块 ,这意味着 PYSPARK_PYTHON 似乎没有从 anaconda 中获取。

我尝试添加参数

PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python

通过 hue 进行火花操作,但似乎不起作用。

如果我 运行 通过 CLI 和 spark-submit 脚本,它就可以工作。 如果我通过 Hue 在 Oozie 上 运行 其他 python 脚本(没有来自 anaconda 的包)它可以工作。

我错过了什么? :/

通过 Oozie 使用 spark 时,您需要告知应在启动器容器(启动 spark 会话的容器)上设置哪些环境变量。

尝试使用键 oozie.launcher.mapreduce.map.env 和值 PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python 添加一个新的 属性 火花操作,它应该会按预期工作。