安装完pyspark后如何运行pyspark

20

我想在家里的电脑上安装pyspark。我已经进行了安装。

pip install pyspark
pip install jupyter

两者似乎都能正常工作。

但是当我尝试运行pyspark时,出现了以下错误:

pyspark
Could not find valid SPARK_HOME while searching ['/home/user', '/home/user/.local/bin']

SPARK_HOME应该设置为什么?

5个回答

41

我刚刚遇到了同样的问题,但结果是pip install pyspark下载了能在本地模式下正常使用的Spark发布版本。 Pip只是没有设置适当的SPARK_HOME。 但是当我手动设置后,pyspark就可以完美运行(无需下载任何其他包)。

$ pip3 install --user pyspark
Collecting pyspark
  Downloading pyspark-2.3.0.tar.gz (211.9MB)
    100% |████████████████████████████████| 211.9MB 9.4kB/s 
Collecting py4j==0.10.6 (from pyspark)
  Downloading py4j-0.10.6-py2.py3-none-any.whl (189kB)
    100% |████████████████████████████████| 194kB 3.9MB/s 
Building wheels for collected packages: pyspark
  Running setup.py bdist_wheel for pyspark ... done
  Stored in directory: /home/mario/.cache/pip/wheels/4f/39/ba/b4cb0280c568ed31b63dcfa0c6275f2ffe225eeff95ba198d6
Successfully built pyspark
Installing collected packages: py4j, pyspark
Successfully installed py4j-0.10.6 pyspark-2.3.0

$ PYSPARK_PYTHON=python3 SPARK_HOME=~/.local/lib/python3.5/site-packages/pyspark pyspark
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
2018-03-31 14:02:39 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 2.3.0
      /_/

Using Python version 3.5.2 (default, Nov 23 2017 16:37:01)
>>>

6
这个解决方案对我起作用了。由于我正在使用虚拟环境,所以我必须按照以下方式进行操作: PYSPARK_PYTHON=python3 SPARK_HOME=~/Users/"用户名"/virtualenvs/"虚拟环境名称"/lib/python(文件夹名称)/site-packages/pyspark - Jannat Tumpa
对我不起作用,我无法避免“Py4JError:调用o25.isBarrier时发生错误。跟踪:py4j.Py4JException:方法isBarrier([])不存在” - Stockfish

13
从PyPi(即使用pip安装)安装的Pyspark不包含完整的Pyspark功能;它只适用于已有集群中的Spark安装[编辑:或仅限本地模式 - 请参见已接受的答案]。从文档中可以看到:

用于Spark的Python打包版并非旨在代替所有其他用例。这个Python打包版的Spark适合与现有集群(无论是Spark独立模式、YARN,还是Mesos)进行交互,但不包含设置自己的独立Spark集群所需的工具。您可以从Apache Spark下载页面下载完整版本的Spark。

注意:如果您将其与Spark独立集群一起使用,则必须确保版本(包括小版本号)匹配,否则可能会遇到奇怪的错误。

您应该按照此处所述下载完整的Spark分发版。

2
@eleanora,你只需要下载、解压并设置SPARK_HOME - 参见我在这里“升级”的答案 https://dev59.com/61sX5IYBdhLWcg3wY-nX#33914992 ,但网络上实际上有很多这样的逐步教程... - desertnaut

2
安装Spark,确保您已安装Java 8或更高版本。然后转到Spark下载页面选择最新的Spark版本,预编译包适用于Hadoop并下载。解压文件并移动到/opt目录(或其他任何文件夹,但请记住您将其移动到哪里)。
mv spark-2.4.4-bin-hadoop2.7 /opt/spark-2.4.4

然后创建一个符号链接。这样,您就可以下载并使用多个Spark版本。
ln -s /opt/spark-2.4.4 /opt/spark

将以下内容添加到您的.bash_profile文件中,以告诉您的bash在哪里找到Spark。
export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH

最后,要设置Spark使用Python3,请将以下内容添加到 /opt/spark/conf/spark-env.sh 文件中。
export PYSPARK_PYTHON=/usr/local/bin/python3
export PYSPARK_DRIVER_PYTHON=python3

0

如果你在使用 Python 3.0+, 那么打开 Anaconda 命令提示符 执行以下命令 pip3 install --user pyspark


欢迎来到SO,请花一分钟时间了解如何正确格式化您的代码。 - desertnaut

0
最简单的方法 - 打开anaconda提示符,输入pip install --user pyspark / pip3 install --user pyspark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接