我试图在Eclipse IDE的pydev环境中使用pyspark连接MySQL。得到以下错误:
例外:在发送端口号之前退出Java网关进程
我已经检查了Java是否已正确安装,并且还在windows-> preferences-> Pydev-> Python Interpreter-> Environment中将PYSPARK_SUBMIT_ARGS
设置为值--master local[*] --jars path\mysql-connector-java-5.1.44-bin.jar pyspark-shell
。
Java Path也已设置。尝试通过代码设置它,但没有运气。
#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()
我的问题略有不同,我正在用窗户运行火花。当我使用时
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()