python Pyspark错误:Java网关进程在发送其端口号之前退出

k7fdbhmy  于 12个月前  发布在  Python
关注(0)|答案(7)|浏览(365)

我正在使用Pyspark运行一些命令在Linux笔记本电脑,但它是抛出错误.我尝试了在此链接提供的解决方案(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上下文来解决我的问题。下面的代码没有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位操作系统。
下面是完整的错误代码图片。


的数据

moiiocjp

moiiocjp1#

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

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

字符串
所有这一切都是将pyspark-shell导出到shell环境变量PYSPARK_SUBMIT_ARGS

vq8itlhq

vq8itlhq2#

试试这个

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

a8jjtwal

a8jjtwal3#

打开“编辑系统变量”>“环境变量”>在“系统变量”(下半部分)>双击“路径”>点击“新建”并添加“C:\WINDOWS\System32”(不带引号)。

f1tvaqid

f1tvaqid4#

实际上,这个错误是由于我们没有在我们的环境变量中设置JAVA_HOME.我也得到了同样的错误,但没有设置JAVA_HOME和SPARK_HOME,你可以直接在你的Python代码中设置它们.但为此,你应该下载JDK 1.8,我现在可以做到这一点.下面是代码的解决方案-

import os
os.environ["JAVA_HOME"] = "C:/Program Files/Java/jdk1.8.0_45"
os.environ["SPARK_HOME"] = "C:/Users/Rahul/Downloads/spark-3.1.3-bin-hadoop2.7"
import findspark
findspark.init()
from pyspark.sql import SparkSession

spark = SparkSession.builder.master("local[*]").getOrCreate()
df=spark.read.options(delimiter=",", header=True).csv("C:/Users/Downloads/sample_movie.csv")
df.show()

字符串

vc6uscn9

vc6uscn95#

你是怎么安装spark的??很明显,你在启动java进程时遇到了麻烦,这就是那个错误的意思。
您可能希望按照说明再次安装Spark,无论您在哪里找到它们。但是,您也可以使用conda(anaconda或miniconda),在这种情况下,安装pyspark也会为您提供最新的java

conda install pyspark

字符串

mzmfm0qo

mzmfm0qo6#

我遇到了同样的问题,然后我安装了jdk 8没有到程序文件,但在一个新的单独的文件夹称为Java和问题得到解决。

pkwftd7m

pkwftd7m7#

from pyspark.sql import SparkSession
postgres_jar_path = "C:\Program Files\Java\lib\postgresql-42.7.1.jar"

spark = SparkSession.builder \
    .appName("ELtT") \
    .config("spark.jars", postgres_jar_path) \
    .getOrCreate()

字符串
我遇到了上面同样的错误,因为我没有正确指定jar文件的路径

相关问题