【发布时间】:2016-07-27 18:21:12
【问题描述】:
我正在尝试使用以下 Jdbc 方法使用 spark 将数据插入 sql server。
选项 1:
prop.put("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
dataf.write.mode(org.apache.spark.sql.SaveMode.Append).jdbc(url,table_name, prop)
表已创建。附加新数据。作业错误,但出现以下异常
线程“main”中的异常
com.microsoft.sqlserver.jdbc.SQLServerException: 创建表 数据库中的权限被拒绝
问题是:Why create table permission is required for appending the data?
选项2:
prop.put("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils.saveTable(dataf, url, table_name, prop)
上面的命令从 spark-shell 工作。当在 scala 代码中使用相同的代码并使用依赖项打包时给出以下异常
线程“main”java.sql.SQLException 中的异常:没有合适的驱动程序 在 java.sql.DriverManager.getDriver(DriverManager.java:315)
我尝试设置驱动程序类路径和执行程序类路径以及 --jars 仍然没有运气。在驱动程序类路径和 --jars 中包含 sqljdbc4.jar。 将 sqljdbc4.jar 复制到所有工作节点以及仍然没有运气。
对此有什么想法吗?
【问题讨论】:
-
如果打包后有些东西不起作用,那么构建定义和提交命令会很有用。
-
我正在使用 spark-submit 并且插入到 hive 表工作正常。唯一的问题是 sql server。
标签: apache-spark spark-streaming