【问题标题】:Pyspark error: Java gateway process exited before sending its port numberPyspark 错误:Java 网关进程在发送其端口号之前已退出
【发布时间】:2019-08-13 00:53:01
【问题描述】:

我正在使用 Pyspark 在 Jupyter Notebook 中运行一些命令,但它会抛出错误。我尝试了此链接中提供的解决方案 (Pyspark: Exception: Java gateway process exited before sending the driver its port number) 我尝试执行此处提供的解决方案(例如更改 C:Java 的路径、卸载 Java SDK 10 并重新安装 Java 8,但它仍然给我同样的错误。

我尝试卸载并重新安装 pyspark,并尝试从 anaconda 提示符运行,但仍然遇到相同的错误。我使用的是 Python 3.7,pyspark 版本是 2.4.0。

如果我使用此代码,我会收到此错误。“异常:Java 网关进程在发送其端口号之前退出”。

from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext() 
sqlContext = SQLContext(sc)
from pyspark.mllib.linalg import Vector, Vectors
from nltk.stem.wordnet import WordNetLemmatizer
from pyspark.ml.feature import RegexTokenizer, StopWordsRemover, Word2Vec

但如果我从此代码中删除 sparkcontext 运行良好,但我的解决方案需要 spark 上下文。下面没有火花上下文的代码不会引发任何错误。

from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.mllib.linalg import Vector, Vectors
from nltk.stem.wordnet import WordNetLemmatizer
from pyspark.ml.feature import RegexTokenizer, StopWordsRemover, Word2Vec

如果我能得到任何帮助来解决这个问题,我将不胜感激。我使用的是 Windows 10 64 位操作系统。

这是完整的错误代码图片。

【问题讨论】:

    标签: python python-3.x pyspark jupyter-notebook


    【解决方案1】:

    在你的 bash 终端中输入这个,它就会被修复:

    export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
    

    这只是将pyspark-shell 导出到shell 环境变量PYSPARK_SUBMIT_ARGS

    【讨论】:

    • 谢谢@Xilpex,这是适用于 Windows 还是 linux 的?我正在使用 Windows 64 位
    • @Avi 这是用于 Linux 的。
    • 老兄!!!我经历了大约 20 种资源,直到现在都没有工作。谢谢!
    • 顺便说一句,我已将您对我的问题的回答复制到此处:stackoverflow.com/a/56916343/1056563
    • 谢谢! , 也适合我
    【解决方案2】:

    试试这个

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java8-installer
    

    使用 linux 为我工作。它也适用于 windows

    此链接将对您有所帮助,因为您是 Windows 用户 https://superuser.com/questions/947220/how-to-install-packages-apt-get-install-in-windows

    【讨论】:

      【解决方案3】:

      你是如何安装火花的?显然,您在启动 java 进程时遇到了问题,这就是该错误的含义。

      您可能希望按照信中的说明再次安装 Spark,无论您在哪里找到它们。但是,您也可以使用conda,(anaconda 或miniconda),在这种情况下,安装 pyspark 也会为您获取当前的 java

      conda install pyspark
      

      【讨论】:

      • 顺便说一句:没有上下文的版本可以正常工作并不奇怪,您实际上还没有尝试启动任何东西。
      • 我在我的 anaconda cmd 提示符下使用了 pip install pyspark。
      • 对于 Windows 10,我必须从最近的 jdk 16 升级中将 java_home 重置为 jdk1.8 才能解决此问题..还要确保 winutils 适用于 hadoop 3.2.1 和 pyspark 3.1.2跨度>
      猜你喜欢
      • 2021-09-15
      • 2019-06-08
      • 1970-01-01
      • 2017-07-15
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      相关资源
      最近更新 更多