设置pyspark环境时出现错误

时间:2020-05-18 05:44:55

标签: apache-spark pyspark

C:\spark-3.0.0-preview2-bin-hadoop2.7\bin>pyspark
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
20/05/18 10:55:36 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 3.0.0-preview2
      /_/

Using Python version 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020 22:20:19)
SparkSession available as 'spark'.
>>> 20/05/18 10:55:56 WARN ProcfsMetricsGetter: Exception when trying to compute pagesize, as a result reporting of ProcessTree metrics is stopped

1 个答案:

答案 0 :(得分:1)

在我的评论之后,我想查看您的PYTHONPATH和PATH环境变量的当前。这是我机器上的一个例子。只需将文本发布为红色,换句话说就是echo命令的整个输出即可:

编辑:免责声明-我完全没有兴趣,只是对它有兴趣,正在整理文档,因为我打算在某个时候学习它。

PATH env-var

    C:\Program Files (x86)\Common Files\Oracle\Java\javapath
    C:\Windows\system32
    C:\Windows
    C:\Windows\System32\Wbem
    C:\Windows\System32\WindowsPowerShell\v1.0\
    C:\Windows\System32\OpenSSH\
    C:\Program Files\jdk-14.0.1_windows-x64_bin\jdk-14.0.1
    C:\Hadoop\bin
    C:\Users\lenovo\AppData\Local\Programs\Python\Python38-32\Scripts\
(i) C:\spark-3.0.0-preview2-bin-hadoop2.7\python\lib\py4j-0.10.8.1-src
    C:\Users\lenovo\AppData\Local\Programs\Python\Python38-32\Scripts\
    C:\Users\lenovo\AppData\Local\Programs\Python\Python38-32\
    C:\Users\lenovo\AppData\Local\Microsoft\WindowsApps

好吧,所以解压缩PATH env-var(如上),我们看到您正在使用“ spark-3.0.0- preview2 ”(i)。嗯... Spark download page(强调):“预览版本是 并不意味着功能正常 ,即它们可以而且很可能会 包含严重的错误或文档错误 。最新的预览版本是Spark 3.0.0-preview2,已于2019年12月23日发布。” (编辑:首先,我认为下载页面的下拉列表默认为预览版有点不公平,以便我理解您为什么选择它)

个人而言,我会考虑使用其他版本的Spark(通过不同的说法,我的意思是更老更稳定)。 另外,如果您完全了解linux ,建议您在虚拟机中进行。也许可以在“ Practical Apache Spark in 10 minutes.”中尝试本文

但是,如果您真的需要使用Windows,我会寻找较旧(且更稳定)的Spark版本。

建议的PYTHONPATH

从我提到的other issue开始,他们谈论将PYTHONPATH env-var指向SPARK_HOME的方法如下:

Adding PYTHONPATH environment variable with value as:
(ii) set PYTHONPATH=%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-<version>-src.zip:%PYTHONPATH%

让我们从(ii)中为PYTHONPATH拆分这些目录:

(iii) %SPARK_HOME%\python
 (iv) %SPARK_HOME%\python\lib\py4j-<version>-src.zip
  (v) %PYTHONPATH%

由于我们使用的是Windows,因此(ii)末尾的':%PYTHONPATH%'似乎是一个错字(请参阅上面的(iii)和(iv)之间)。在Unix / Linux上用冒号,在Windows上用分号。

无论如何,如果我必须进行这项工作,我将首先查看文件夹(iii)和(iv)是否确实存在。这意味着从您的SPARK_HOME env-var的值开始。

请注意(iv)的 部分,它实际上不是“”。例如,如果您确实要进行预览发行,则可能是“ 3.0.0-preview2”。 (再次,这也是为什么我还要求您提供PYTHONPATH env-var的原因)。