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

使用JDBC连接SQL Server时PySpark CTE查询报错问题

PySpark JDBC连接SQL Server时CTE查询报错的解决办法

问题现象

使用PySpark通过JDBC连接Microsoft SQL Server,执行包含WITH子句(CTE)的查询时触发报错:

com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'WITH'

排查过程与结论

  • 已排查并修正JOIN条件符号、CTE语法格式等问题
  • 确认JDBC连接要求的() as _包裹是必要配置
  • 测试验证不含CTE的简单查询可正常运行,初步怀疑包裹逻辑与CTE存在冲突
  • 最终确认:当前使用的SQL Server JDBC驱动不支持CTE语法,需替换为无WITH子句的实现方式

报错的CTE查询代码示例

query = """(
WITH table_1 (code_1)
AS
(
    SELECT code_1
    FROM my_database_table_1
)
SELECT code_1
FROM table_1
) as _
"""

可正常运行的非CTE查询代码示例

query = """(
SELECT code_1
FROM my_database_table_1
) as _
"""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:35:19