gpt4 book ai didi

sql-server - 使用 pyspark 对 SQL Server JDBC 使用 Windows 身份验证

转载 作者:行者123 更新时间:2023-12-05 05:09:22 24 4
gpt4 key购买 nike

我想问一下如何使用 Windows 身份验证将 SQL Server 与 pyspark 库连接起来?我可以与 Microsoft SQL Server Management Studio 连接,但当我尝试使用 spark 在 Python 中编写代码时却无法连接。这是我目前尝试的方法。

from pyspark.sql import SparkSession

spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.driver.extraClassPath","mssql-jdbc-6.4.0.jre8.jar") \
.getOrCreate()

mssql_df = spark.read.format("jdbc") \
.option("url", "jdbc:sqlserver://localhost:1433;databaseName=DATABASE-NAME") \
.option("dbtable", "database-table-name") \
.option("user", "Windows-Username") \
.option("password", "Windows-Pass")\
.option("driver", 'com.mysql.jdbc.Driver').load()

mssql_df.printSchema()
mssql_df.show()

最佳答案

如图here您可以设置 integratedSecurity=true 以通过 jdbc 和 Windows 身份验证连接到 SQL Server。

然后 Spark 配置应该如下所示:

mssql_df = spark.read.format("jdbc") \
.option("url", "jdbc:sqlserver://localhost:1433;databaseName=DATABASE-NAME;integratedSecurity=true") \
.option("dbtable", "database-table-name") \
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
.load()

更新:

正如评论中所讨论的,用户应该将 sqljdbc_auth.dll 放在 mssql-jdbc-7.4.1.jre12.jar 所在的同一文件夹中,或者只设置 spark.driver.extraClassPath 两个 jar 由 : 分隔,如下所示:

.config("spark.driver.extraClassPath","/path.to/mssql-jdbc-6.4.0.jre8.jar:/path/to/sqljdbc_auth.dll")

sqljdbc_auth.dll 是 Microsoft JDBC Driver 6.0 for SQL Server 的一部分,您可以从 here 下载它。 .或者,您可以只在系统上安装 JDBC 驱动程序并指定存储 dll 的路径。

关于sql-server - 使用 pyspark 对 SQL Server JDBC 使用 Windows 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com