Pyspark:使用 Python 从 Spark 2.4 连接到 MS SQL Server 2017 时没有合适的驱动程序错误
Posted
技术标签:
【中文标题】Pyspark:使用 Python 从 Spark 2.4 连接到 MS SQL Server 2017 时没有合适的驱动程序错误【英文标题】:Pyspark: No suitable Driver error while connecting to MS SQL Server 2017 from Spark 2.4 using Python 【发布时间】:2019-07-09 12:55:12 【问题描述】:我在使用 python 运行 spark 作业时遇到问题,即 pyspark。 请看下面的代码sn-ps
from pyspark.sql import SparkSession
from os.path import abspath
from pyspark.sql.functions import max,min,sum,col
from pyspark.sql import functions as F
spark = SparkSession.builder.appName("test").config("spark.driver.extraClassPath", "/usr/dt/mssql-jdbc-6.4.0.jre8.jar").getOrCreate()
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
spark.conf.set("spark.sql.session.timeZone", "Etc/UTC")
warehouse_loc = abspath('spark-warehouse')
#loading data from MS SQL Server 2017
df = spark.read.format("jdbc").options(url="jdbc:sqlserver://10.90.3.22;DATABASE=TransTrak_V_1.0;user=sa;password=m2m@ipcl1234",properties = "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver" ,dbtable="Current_Voltage").load()
当我运行这段代码时,我遇到了以下错误:
py4j.protocol.Py4JJavaError: An error occurred while calling o38.load.
: java.sql.SQLException: No suitable driver
之前运行良好的相同代码。但是,由于某些原因,我不得不重新安装centOS 7,然后重新安装Python 3.6。我已将 python 3.6 设置为 spark 中的默认 python,即当我启动 pyspark 时,默认 python 为 3.6。
顺便提一下,系统默认的python是Python 2.7。我使用的是centOS 7。
这里出了什么问题?有人可以帮忙吗?
【问题讨论】:
请大家帮忙。正如我所说,这之前运行良好。是因为 Spark 2.4.3 版本的原因吗? 我猜是因为你的jdbc驱动和你的db不匹配。 有同样的问题,Python3,Mac中的openjdk 【参考方案1】:好的,经过长时间的搜索,看来 spark 可能无法与openjdk
即java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
一起正常工作。当我看到默认的 Java 时,我看到它如下
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
然后我尝试从官方站点安装 Oracle JDK 8,但是,我遇到了不同的问题。 所以简而言之,我无法像之前那样运行火花作业。
【讨论】:
以上是关于Pyspark:使用 Python 从 Spark 2.4 连接到 MS SQL Server 2017 时没有合适的驱动程序错误的主要内容,如果未能解决你的问题,请参考以下文章
来自 Spark 安装的 Pyspark VS Pyspark python 包
我可以使用spark 2.3.0和pyspark从Kafka进行流处理吗?