我使用Google Cloud Dataproc创建了一个群集。我可以将作业提交到集群,直到我
集群上的pip3安装pyspark
。之后,每次我尝试提交作业时,都会收到错误:
在搜索['/ tmp'时找不到有效的SPARK_HOME, '在/ usr / local / bin目录']
/ usr / local / bin / spark-submit:第27行:/ bin / spark-class:没有这样的文件或目录
我注意到即使在安装pyspark之前,SPARK_HOME也没有设置任何东西。但是我可以提交工作。我想知道为什么安装pyspark导致这个问题以及如何解决它?
答案 0 :(得分:1)
Pyspark已经预先安装在Dataproc上 - 您应该调用pyspark
命令而不是python
。目前,尝试pip install pyspark或py4j将破坏Dataproc上的pyspark。您还需要注意不要安装任何依赖于pyspark / py4j的软件包。我们已经意识到这个问题:)
如果您只是尝试切换到Python 3,目前最简单的方法是在创建群集时运行miniconda初始化操作:https://github.com/GoogleCloudPlatform/dataproc-initialization-actions/blob/master/conda/。该init动作还可以方便地指定要安装的额外pip或conda包。
我们也知道pyspark
PYTHONPATH
对于python解释器来说不是pyspark
。目前,如果要运行pyspark代码,请使用pyspark
命令。请注意,/etc/spark/conf/spark-env.sh
命令来源import pyspark
,如果您想在python
shell中运行pyspark
,则必须手动执行此操作。
附注:不是通过SSH连接到群集并运行gcloud dataproc jobs submit pyspark
,而是考虑从工作站运行$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
$spreadsheet = $reader->load('File.csv');
$sheetData = $spreadsheet->getActiveSheet()->toArray();
echo '<pre>';
print_r($sheetData);
(docs)或使用Jupyter notebook。
答案 1 :(得分:0)
brew install apache-spark 实际上已经提供了一个有效的pyspark shell。无需额外 pip安装pyspark