【问题标题】:How to fix 'Exception: Java gateway process exited before sending its port number' in Eclipse IDE如何在 Eclipse IDE 中修复“异常:Java 网关进程在发送其端口号之前退出”
【发布时间】:2019-06-06 01:18:41
【问题描述】:

我正在尝试在 Eclipse IDE 的 pydev 环境中使用 pyspark 连接 MySQL。 出现以下错误:

异常:Java 网关进程在发送其端口号之前退出

我已检查 Java 是否已正确安装,并且还在 windows-> 首选项->Pydev->Python Interpreter->Environment 中将 PYSPARK_SUBMIT_ARGS 设置为值 --master local[*] --jars path\mysql-connector-java-5.1.44-bin.jar pyspark-shell

Java 路径也已设置。也尝试通过代码设置它,但没有运气。

#import os
from pyspark import SparkContext
from pyspark import SparkConf

from pyspark.sql.context import SQLContext

#os.environ['JAVA_HOME']= 'C:/Program Files/Java/jdk1.8.0_141/'

#os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars D:/Softwares/mysql-connector-java-5.1.44.tar/mysql-connector-java-5.1.44/mysql-connector-java-5.1.44-bin.jar pyspark-shell'

conf = SparkConf().setMaster('local').setAppName('MySQLdataread')

sc = SparkContext(conf=conf)

sqlContext = SQLContext(sc)

dataframe_mysql = sqlContext.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "XXXXX").option("user", "root").option("password", "XXXX").load()

dataframe_mysql.show()

【问题讨论】:

  • Nitpick:拼写为 Java 而不是 JAVA。它不是首字母缩写词。
  • 感谢更正!你能帮我解决一下吗
  • 您可以查看this 并查看您的错误日志文件中的内容。
  • @SajibAcharya 我没有运行任何 VM eclipse 仅安装在我的操作系统和 MySQL 本地主机中。所以我想内存问题不会是原因。我已经尝试了该帖子中给出的所有可能的解决方案,但仍然没有运气。

标签: pyspark


【解决方案1】:

我的问题略有不同,我在带有 windows 的 spyder 中运行 spark。 当我使用

from pyspark.sql import SQLContext, SparkSession

我遇到了问题,并按照谷歌搜索链接并无法解决问题。

然后我将导入改为:

from pyspark.sql import SparkSession
from pyspark import  SQLContext

并且错误消息消失了。

我在Windows上运行,anaconda3,python3.7,spyder 希望对某人有所帮助。

编辑:
后来,我发现真正的问题来自以下。当任何配置无法正常工作时,会出现相同的异常。以前,我使用 28gb 和 4gb 而不是 28g 和 4g,这导致了我遇到的所有问题。

from pyspark.sql import SparkSession
from pyspark import  SQLContext
spark = SparkSession.builder \
    .master('local') \
    .appName('muthootSample1') \
    .config('spark.executor.memory', '28g') \
    .config('spark.driver.memory','4g')\
    .config("spark.cores.max", "6") \
    .getOrCreate()

【讨论】:

  • 这里的“变化”实际上都不是变化。对导入行所做的更改在功能上与您之前所做的相同,并且您在编辑中添加的配置也与您建议的值相同。
猜你喜欢
  • 2019-06-08
  • 2020-10-26
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 2021-09-15
  • 2019-08-13
相关资源
最近更新 更多