尝试在Dataproc上提交作业时,“ImportError:没有名为pandas的模块”

时间:2017-09-22 17:10:31

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

我正在使用适用于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

1 个答案:

答案 0 :(得分:1)

默认情况下,Dataproc上未安装Pands。您可以通过类似于此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