Pyspark - SQL 服务器 2005 - SQL 异常 151

Pyspark - SQL server 2005 - SQL Exception 151

我遇到了有关通过 pyspark 从 sql server2005 上的数据库支持获取数据的问题。 我有一个包含 5 列的 table :

- index -> int
- category -> nvarchar
- date_modified -> datetime format YYYY-MM-DD HH:MM:SS:SSS
- category2 -> nvarchar
- category3 -> nvarchar

当我尝试使用此命令导入数据时

conn = spark.read.format("jdbc").option("url", "jdbc:sqlserver://IP:PORT;database=dbname;user=xxxxxxxx;password=xxxxxxxxx").option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver").option("com.microsoft.sqlserver.jdbc.sendTimeAsDatetime", "false")
conn = conn.option("dbtable", "(SELECT [index],[category],[date_modified],[category2],[category3] FROM table) AS result")
df = conn.load()

我收到 SQL 异常: java.sqlSQLExcedption: 无法识别 SQL 类型 -151

如果我将我的列转换为字符串,我能够正确获取数据,但我想按原样导入它,因为我有一个检查日期模式并检测差异的过程。

奇怪的是,在另一个具有相同结构和相同 table 但在 SQL 服务器 2016 上的完全相同的查询运行良好。我正在使用 Spark 版本 2.3

有人可以帮我解决这个问题吗?

问题已解决。这是由于一个争论 select * 在我整个 table 上。通过移动此参数,我能够正确提取数据。计划升级数据库版本。