我试图在Eclipse IDE的pydev环境中使用pyspark连接MySQL。 出现以下错误:
异常: Java网关进程在发送其端口号之前已退出
我已检查Java是否已正确安装,并且还在Windows->首选项-> Pydev-> Python解释器->环境中将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()
答案 0 :(得分:1)
我的问题略有不同,我正在Windows的spyder中运行spark。 当我使用
from pyspark.sql import SQLContext, SparkSession
我遇到了问题,并遵循了Google搜索链接,但无法解决问题。
然后我将导入更改为:
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()