我正在使用Python Client Library for Google Cloud Dataproc运行一个脚本,它可以自动提供集群、提交作业等。但在尝试提交作业时,它返回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发布于 2017-09-23 01:28:15
默认情况下,在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 -yhttps://stackoverflow.com/questions/46369904
复制相似问题