在Spark环境中使用SQL Server 2008时,我使用的是SQLJDBC4.jar,它恰好是JDBC SQL Server连接器。
在创建SQLContext以从spark-shell查询数据库表时,我收到如下错误:
com.microsoft.sqlserver.jdbc.SQLServerException:端口号 1435 / xxx?user = xxx& password = xxx无效。
我问我的数据库团队他们说端口号是对的。 但最近,我才知道我们需要在我们的环境中使用ODBC,而不是JDBC。由于这个连接器问题,我们可能会出现错误吗?我还没有将ODBC下载并保存在linux机器上。
其次,在启动spark-shell时,我先前使用--driver-class-path
提到了jdbc的完整路径,所以一旦我有了ODBC,我是否需要同时使用它们,或者只是给它们ODBC完整路径会起作用吗?即。
spark-shell --driver-class-path "path to JDBC" --driver-class-path "path to ODBC"
或只是
spark-shell --driver-class-path "path to ODBC"
以下是JDBC网址
val jdbcDF = sqlContext.read.format("jdbc")
.options(Map(
"url" -> "jdbc:sqlserver://host-IP:port/DB_name?user=user_name&password=passwd",
"dbtable" -> "Table_name")
).load()