如何在 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】:
这对我们来说很痛苦。有效的解决方法是:
-
相应地使用
pip
或pip3
从终端安装您需要的python 包。
默认情况下,spark 解释器上的zeppelin.pyspark.python
设置为:python。该 python 无法识别我们使用终端安装的软件包。我们必须更新zeppelin.pyspark.python
:/usr/bin/python(python命令的路径,你可以使用命令'which python'获取它)
现在解释器和 zeppelin 笔记本能够访问我们从终端安装的所有包。
【讨论】:
我只是将我的 spark 解释器的PYSPARK_PYTHON
和 PYSPARK_DRIVER_PYTHON
变量指向 python3
就足够了。假设 python3 在 PATH 中【参考方案2】:
您需要打开终端并输入pip
,然后按TAB 键。应列出沙盒上可用的 pip 版本。使用 pip3 安装您需要的软件包。这样做的方法保持不变pip3 install "packageName"
。这将使该软件包可用于您希望在 Zeppelin 中使用的 Python3 安装。
【讨论】:
再次感谢您的帮助。请检查问题的更新部分以上是关于如何在 HDP 中的 zeppelin-spark2 中将库安装到 python的主要内容,如果未能解决你的问题,请参考以下文章