如何在 HDP 中的 zeppelin-spark2 中将库安装到 python

Posted

技术标签:

【中文标题】如何在 HDP 中的 zeppelin-spark2 中将库安装到 python【英文标题】:How to install libraries to python in zeppelin-spark2 in HDP 【发布时间】:2018-11-09 06:17:32 【问题描述】:

我正在使用 HDP 版本:2.6.4

能否提供一步一步的说明如何将库安装到 spark2 下的以下 python 目录?

sc.version(spark 版本)返回

res0: String = 2.2.0.2.6.4.0-91

spark2解释器名称和值如下

zeppelin.pyspark.python:    /usr/local/Python-3.4.8/bin/python3.4

python 版本和当前库是

%spark2.pyspark

import pip
import sys

sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])

print("--")     
print (sys.version)
print("--")
print(installed_packages_list)

--
3.4.8 (default, May 30 2018, 11:05:04) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)]
--
['pip==9.0.1', 'setuptools==28.8.0']

更新1:using pip install [package name]实际上会导致两个问题

1) HDP 指向 python2.6 而不是 python3.4.8

2) pip3 由于某种原因不存在

因此,我正在考虑安装 miniconda 并将 Zeppelin 指向那里并在 conda 中安装所有包以防止 python 2.6 和 3.4.8 之间发生冲突

【问题讨论】:

使用python3 -m pip install <package>。 snarky.ca/why-you-should-use-python-m-pip 【参考方案1】:

这对我们来说很痛苦。有效的解决方法是:

    相应地使用pippip3 从终端安装您需要的python 包。 默认情况下,spark 解释器上的zeppelin.pyspark.python 设置为:python。该 python 无法识别我们使用终端安装的软件包。我们必须更新zeppelin.pyspark.python/usr/bin/python(python命令的路径,你可以使用命令'which python'获取它)

现在解释器和 zeppelin 笔记本能够访问我们从终端安装的所有包。

【讨论】:

我只是将我的 spark 解释器的 PYSPARK_PYTHONPYSPARK_DRIVER_PYTHON 变量指向 python3 就足够了。假设 python3 在 PATH 中【参考方案2】:

您需要打开终端并输入pip,然后按TAB 键。应列出沙盒上可用的 pip 版本。使用 pip3 安装您需要的软件包。这样做的方法保持不变pip3 install "packageName"。这将使该软件包可用于您希望在 Zeppelin 中使用的 Python3 安装。

【讨论】:

再次感谢您的帮助。请检查问题的更新部分

以上是关于如何在 HDP 中的 zeppelin-spark2 中将库安装到 python的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 HDP 3.1 中的仓库连接器的情况下将表从 spark 中写入 hive

如何针对 HDP 2.6.1.0 堆栈构建应用程序

如何将第三方 jar 添加到 HDP 沙箱上的类路径?

如何在 Hadoop / HDP 组件中配置日志记录?

hdp直播 时间设置

从 HDF 3.4 通过 HDP 3.1 安装时如何获得适当的 Kafka 版本