将 pyspark 连接到 SQL Server 时出错
Posted
技术标签:
【中文标题】将 pyspark 连接到 SQL Server 时出错【英文标题】:Error in connecting with pyspark to SQL Server 【发布时间】:2021-06-02 10:08:58 【问题描述】:我正在尝试使用 pyspark 从本地连接到 SQL Server。我已经下载了最后一个driver version,但是运行下面的代码时会出现这个错误:
错误:“客户端首选项 [TLS12] 不接受服务器选择的协议版本 TLS10”
代码如下(Spark 会话之前已启动,驱动程序位于支持的路径中):
jdbcDF = spark.read \
.format("jdbc") \
.option("url","jdbc:sqlserver://<host>\\<port>;database=<database>;") \
.option("dbtable", <table>) \
.option("user", <username>) \
.option("password", <password>) \
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
.load()
我了解到一种可能的解决方案是从 SQL Server 更改一些配置,但这对我来说是不可能的。有什么方法可以在不更改 SQL Server 中的任何内容的情况下修复它?
【问题讨论】:
你为什么使用 TLS1.0? 我猜我是默认用的,能改吗? 运行 SQL Server 的 Windows 版本是什么? 我认为Windows版本是Windows 8.1。 【参考方案1】:我认为你的问题类似于this one
从上面的链接:
TLS10 在 Java 1.8 及更高版本中被禁用。您可以通过从 java.security
文件中的 jdk.tls.disabledAlgorithms
中删除 TLSv1
来启用它(此编辑在您的客户端计算机中完成,而不是在 SQL Server 中完成)。
这在我的情况下有效。
【讨论】:
以上是关于将 pyspark 连接到 SQL Server 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark:使用 Python 从 Spark 2.4 连接到 MS SQL Server 2017 时没有合适的驱动程序错误
Pyspark/SQL 将具有列表值的列连接到另一个数据框列
Pyspark 连接到 Microsoft SQL 服务器?