【问题标题】:"ImportError: no module named pandas" when trying to submit a job on Dataproc尝试在 Dataproc 上提交作业时出现“ImportError:没有名为 pandas 的模块”
【发布时间】:2018-03-04 08:08:38
【问题描述】:

我正在使用适用于 Google Cloud Dataproc 的 Python 客户端库运行一个脚本,该脚本会自动配置集群、提交作业等。但在尝试提交作业时,它会返回 ImportError: no module named pandas。我在运行作业的脚本中导入了 pandas 以及其他几个包。我不确定如何解决这个问题。

所以这有意义吗?

    #!/bin/bash
    ROLE=$(/usr/share/google/get_metadata_value attributes/dataproc-role)
    if [[ "${ROLE}" == 'Master' ]]; then 
        apt-get install python-pandas -y
        apt-get install python-numpy -y
        apt-get install g++ cmake
        apt-get install python-math
        apt-get install python-argparse
        apt-get install python-os
        apt-get install python-sys
        apt-get install python-glob
        apt-get install python-gzip
        apt-get install python-hail
     fi

这是我更新的 bash 脚本:

    #!/bin/bash
    list= "python-pandas, python-numpy, python-argparse"

    ROLE=$(/usr/share/google/get_metadata_value attributes/dataproc-role)

    if [[ "${ROLE}" == 'Master' ]]; then 
        for i in $list; do
          sudo apt-get install -y $i
        done

        wget -P /home/anaconda2/ https://repo.continuum.io/archive/Anaconda2-4.3.1-Linux-x86_64.sh
        bash /home/anaconda2/Anaconda2-4.3.1-Linux-x86_64.sh -b -f -p /home/anaconda2/
        chmod /home/anaconda2 0777
        /home/anaconda2/bin/pip install lxml
        /home/anaconda2/bin/pip install jupyter-spark
        /home/anaconda2/bin/pip install jgscm

    fi

【问题讨论】:

  • 那我猜pandas模块需要安装。

标签: google-cloud-platform google-cloud-dataproc google-cloud-python


【解决方案1】:

默认情况下,Pands 未安装在 Dataproc 上。您可以通过类似于 one 的初始化操作安装自定义 python 库。

作为参考,我运行以下命令只是为了验证是否在至少一个节点上找到了 pandas:

#!/usr/bin/python
import pyspark
import pandas
sc = pyspark.SparkContext()
vals = sc.parallelize(xrange(1, 100))
reprs = vals.mapPartitions(lambda es: [repr(pandas) for e in es])
for r in reprs.collect():
  print r

我的初始化操作很简单:

#!/bin/bash
apt-get install python-pandas python-numpy -y

【讨论】:

  • 我在上面添加了我的初始化操作脚本版本。这一切都有意义吗?
  • Pandas 和 numpy 肯定是有道理的,我想知道在运行时是否所有其他的都是必要的(如果你使用预构建的包,g++ 并且看起来很可疑)。您可能还想在所有节点上简单地安装这些包,而不仅仅是主节点(取决于您在做什么)。最后一点,单次调用 apt-get install 将为您节省一些启动时间。
  • 我已更新以包含我的测试脚本和初始化操作。诚然,我的测试不是“熊猫工作吗”,而是“熊猫是否安装在 python 路径上”。
猜你喜欢
  • 2014-12-09
  • 2018-06-30
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
相关资源
最近更新 更多