导入 Pandas 时出现 Apache Zeppelin 错误

Posted

技术标签:

【中文标题】导入 Pandas 时出现 Apache Zeppelin 错误【英文标题】:Apache Zeppelin Error When Importing Pandas 【发布时间】:2021-12-18 20:18:35 【问题描述】:

将 Pandas 库导入 Zeppelin 笔记本时遇到一个奇怪的错误。这是我作为单元格的一部分的基本代码:

%python

import pandas as pd

df = pd.read_csv (r'target/youtube_videos.csv')
print (df)

我收到以下错误:

Fail to execute line 3: import pandas as pd
Traceback (most recent call last):
  File "/tmp/1636039066525-0/zeppelin_python.py", line 153, in <module>
    exec(code, _zcUserQueryNameSpace)
  File "<stdin>", line 3, in <module>
ModuleNotFoundError: No module named 'pandas'

我试图查看我的 Python 路径是什么样的,它是这样的:

%sh
python --version
python3-config --configdir

这给了我以下信息:

Python 3.7.0b3
/usr/lib/python3.8/config-3.8-x86_64-linux-gnu

我正在使用 Zeppelin 0.10.0。

编辑:

我尝试了以下方法:

joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/ml-data-preparation-sandbox$ zstart
Please specify HADOOP_CONF_DIR if USE_HADOOP is true
Zeppelin start                                             [  OK  ]
joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/ml-data-preparation-sandbox$ python
Python 3.7.0b3 (default, Mar 30 2018, 04:35:22) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'
>>> 

Pandas 好像已经安装好了:

joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/ml-data-preparation-sandbox$ pip3 install pandas
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (1.3.4)
Requirement already satisfied: python-dateutil>=2.7.3 in /usr/lib/python3/dist-packages (from pandas) (2.7.3)
Requirement already satisfied: numpy>=1.17.3 in /usr/lib/python3/dist-packages (from pandas) (1.17.4)
Requirement already satisfied: pytz>=2017.3 in /usr/lib/python3/dist-packages (from pandas) (2019.3)
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.
joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/ml-data-preparation-sandbox$ 

我什至在 Zeppelin 中将 python 解释器设置如下:

【问题讨论】:

你们是如何启动 Zeppelin 的? 我导航到我的项目文件夹并执行 zstart 命令 从你运行zstart的终端,请你启动一个Python shell并尝试import pandas as pd 我已经编辑了我的帖子。请参见上文。 您是否将pandas 库安装到Zeppelin 使用的环境中?看起来pandas 没有安装。 【参考方案1】:

Zeppelin 使用的 Python 解释器似乎配置不正确。您可能安装了几种不同的 Python,并且您考虑了一种,但 Zeppelin 使用了另一种。您必须检查参数zeppelin.python。然后需要检查这个 Python pandas 库中是否安装了(我认为没有)。

此参数指定“已经安装的Python二进制文件的路径。如果python不在你的$PATH中,你可以设置绝对目录(例如:/usr/bin/python)”

默认情况下,Zeppelin 将使用zeppelin.python 属性中定义的 Python 来运行 Python 进程。解释器可以使用所有已安装的模块(使用 pip、easy_install...)

Zeppelin 使用的解释器需要安装pandas

或在此参数中指定已安装pandas 的Python 解释器的路径。

【讨论】:

奇怪,我将 zeppelin.python 设置为 /usr/bin/python,但它仍然不尊重它并咳出同样的错误。 我用 zeppelin.python 配置的屏幕截图编辑了我的帖子。我不认为我是第一个遇到这样一个基本问题的人。该死! 可能是安装了两个Python,你安装了pandas,但是Zeppelin使用了另一个。运行 Zeppelen 中指定的手动解释器并检查 pandas 是否存在。 我确实安装了不同版本的 Python,但我现在该如何解决这个问题? 喜欢这个/usr/bin/python -m pip install pandas。比在 Zeppelin 中重新启动 python 解释器所需要的【参考方案2】:

你确定你已经安装了pandas 吗?除非 Zeppelin 使用自己的 Python,否则这将是问题所在。试一试pip3 install pandas

【讨论】:

我已经安装了 pandas。请再次查看我编辑的帖子! 试试pip3 --version。这将告诉我们正在为哪个 Python pip 安装包。 joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/ml-data-preparation-sandbox$ pip3 --version pip 21.2.4 from /home/ joesan/.local/lib/python3.8/site-packages/pip (python 3.8)【参考方案3】:

对于任何可能面临相同问题的人,我是这样解决的:

    安装 pyenv 使用 pyenv 安装 python 版本 3.7.8 使用 pyenv 全局命令设置版本 3.7.8 将 zeppelin.interpretor 设置为 python

【讨论】:

以上是关于导入 Pandas 时出现 Apache Zeppelin 错误的主要内容,如果未能解决你的问题,请参考以下文章

Pandas - 导入大小为 4GB 的 CSV 文件时出现内存错误

导入 pandas.plotting 以构建 scatter_matrix 时出现问题

python在导入pandas时出现问题

使用 pandas read_excel() 将 .xls 文件格式导入 python 时出现 CompDocError

将 pyspark pandas_udf 与 AWS EMR 一起使用时出现“没有名为‘pandas’的模块”错误

安装pandas时出现环境错误