Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform &引用;ImportError:没有名为pandas的模块;尝试在Dataproc上提交作业时_Google Cloud Platform_Google Cloud Dataproc_Google Cloud Python - Fatal编程技术网

Google cloud platform &引用;ImportError:没有名为pandas的模块;尝试在Dataproc上提交作业时

Google cloud platform &引用;ImportError:没有名为pandas的模块;尝试在Dataproc上提交作业时,google-cloud-platform,google-cloud-dataproc,google-cloud-python,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) i

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

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

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

#!/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++和make看起来很可疑)。您可能还希望在所有节点上安装这些软件包,而不仅仅是在主节点上(取决于您正在做什么)。最后一个注意事项是,一次调用apt get install将为您节省一些启动时间。当我只是尝试您提供的上面链接的初始化脚本(安装pandas的脚本)时,当我提交pyspark作业时,仍然会出现
没有名为pandas的模块的错误。我已经更新,以包括我的测试脚本和初始化操作。诚然,我的测试不是“pandas是否工作”,而是“pandas是否安装在python路径上”。