使用Apache Spark连接器用于SQL Server和Azure SQL时,我在下面的代码的最后一行得到以下错误,我使用Apache Spark pushdown predicate
。我正试着模仿微软文档中的以下示例。
误差:
com.microsoft.sqlserver.jdbc。SQLServerException:关键字'WHERE'附近语法错误
什么可能是错误的原因,我们如何解决它?
:是使用Spark Dataframe和SQL JDBC将Azure SQL Db的SQL查询结果右转到.csv
文件。
server_name = "jdbc:sqlserver://myAzure-ManagedInstance.database.windows.net"
database_name = "myAzureDb"
jdbcUrl = server_name + ";" + "databaseName=" + database_name + ";"
connectionProperties = {
"user" : "mySQLUsername,
"password" : "mySQLPassword,
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}
pushdown_query = "(SELECT FirstName, LastName FROM Customers)"
df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, properties=connectionProperties)
你的代码中一定有输入错误。
在connectionProperties
中,需要给mySQLUsername
和mySQLPassword
加双引号
connectionProperties = {
"user" : "mySQLUsername",
"password" : "mySQLPassword",
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}