You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下PySpark集成认证连接SQL Server 2016报错如何解决?

问题核心原因

你犯了最基础的平台适配错误:mssql-jdbc_auth-9.2.1.x64.dll是Windows系统下的动态链接库,完全无法在Linux环境下加载使用,同时你也没有正确配置JVM查找本地库的路径。

修复步骤

  • 第一步:替换正确的Linux平台认证库
    从微软JDBC驱动包的/auth/x64/目录下找到对应版本的libmssql-jdbc_auth-9.2.1.x64.so文件,上传到你的Linux机器的/home/user1/目录下,给文件加执行权限:
    chmod +x /home/user1/libmssql-jdbc_auth-9.2.1.x64.so
    
  • 第二步:修改PySpark脚本配置
    删掉spark.driver.extraClassPath里的dll路径,新增JVM本地库路径配置,修改后的脚本如下:
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.appName('Connection-Test')\
    .config('spark.driver.extraClassPath','/home/user1/mssql-jdbc-9.2.1.jre8.jar')\
    .config('spark.driver.extraJavaOptions', '-Djava.library.path=/home/user1/')\
    .getOrCreate()
    spark.read.format("jdbc")\
    .option("url","jdbc:sqlserver://prodsqlserver.domainName.com:3341;databaseName=PHOENIX_DW;integratedSecurity=true")\
    .option("dbtable","DWH.AGENT")\
    .option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")\
    .load()\
    .show()
    
  • 第三步:修改spark-submit提交命令,新增本地库路径参数:
    spark2-submit --driver-class-path /home/user1/mssql-jdbc-9.2.1.jre8.jar \
    --jars /home/user1/mssql-jdbc-9.2.1.jre8.jar \
    --conf spark.executor.extraJavaOptions="-Djava.library.path=/home/user1/" \
    ReadData.py
    
  • 可选补充:如果你的Linux环境已经配置了域认证(Kerberos),需要提前执行kinit 你的域账号获取有效票据后再运行任务。

内容的提问来源于stack exchange,提问作者Sidd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:24:03