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

k7fdbhmy  于 2024-01-05  发布在  Python
关注(0)|答案(7)|浏览(454)

我正在使用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网关进程在发送其端口号之前退出”。

  1. from pyspark import SparkContext
  2. from pyspark.sql import SQLContext
  3. sc = SparkContext()
  4. sqlContext = SQLContext(sc)
  5. from pyspark.mllib.linalg import Vector, Vectors
  6. from nltk.stem.wordnet import WordNetLemmatizer
  7. from pyspark.ml.feature import RegexTokenizer, StopWordsRemover, Word2Vec

字符串
但是如果我从这段代码中删除sparkcontext运行良好,但是我需要spark上下文来解决我的问题。下面的代码没有spark上下文不会抛出任何错误。

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


如果我能得到任何帮助,我将不胜感激。我使用的是Windows 10 64位操作系统。
下面是完整的错误代码图片。


的数据

moiiocjp

moiiocjp1#

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

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

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

vq8itlhq

vq8itlhq2#

试试这个

  1. sudo add-apt-repository ppa:webupd8team/java
  2. sudo apt-get update
  3. 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,我现在可以做到这一点.下面是代码的解决方案-

  1. import os
  2. os.environ["JAVA_HOME"] = "C:/Program Files/Java/jdk1.8.0_45"
  3. os.environ["SPARK_HOME"] = "C:/Users/Rahul/Downloads/spark-3.1.3-bin-hadoop2.7"
  4. import findspark
  5. findspark.init()
  6. from pyspark.sql import SparkSession
  7. spark = SparkSession.builder.master("local[*]").getOrCreate()
  8. df=spark.read.options(delimiter=",", header=True).csv("C:/Users/Downloads/sample_movie.csv")
  9. df.show()

字符串

vc6uscn9

vc6uscn95#

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

  1. conda install pyspark

字符串

mzmfm0qo

mzmfm0qo6#

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

pkwftd7m

pkwftd7m7#

  1. from pyspark.sql import SparkSession
  2. postgres_jar_path = "C:\Program Files\Java\lib\postgresql-42.7.1.jar"
  3. spark = SparkSession.builder \
  4. .appName("ELtT") \
  5. .config("spark.jars", postgres_jar_path) \
  6. .getOrCreate()

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

相关问题