如何在本地模式下使用spark_read_jdbc

问题描述 投票:1回答:1

我正在尝试使用spark_read_jdbc从MS SQL数据库读取本地开发。这需要连接到数据库。

我有以下spark_connect

library(sparklyr)
# spark_install()
conf <- spark_config()
conf$`sparklyr.cores.local` <- 4
conf$`sparklyr.shell.driver-memory` <- "16G"
conf$spark.memory.fraction <- 0.9

sc <- spark_connect(master = "local", 
                    version = "2.1.0",
                    config = conf)
b <- sparklyr::spark_read_jdbc(sc, 
                                 name ="my_table" , 
                                 options = list(url = "jdbc:sqlserver://<server>", 
                                                user = keyring::key_get("uid"),
                                                driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver",
                                                password = keyring::key_get("pwd"),
                                                dbtable = "<tablename>")) 

但是当我运行上面的代码时,我得到以下错误

错误:java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver

好像我的司机无法找到。我该如何调试此错误。

sparklyr
1个回答
0
投票

它应该有所帮助。如俄罗斯语的答案,你找不到它:https://ru.stackoverflow.com/questions/645847/java-lang-classnotfoundexception-com-microsoft-sqlserver-jdbc-sqlserverdriver

来自Dmitriy评论的近似翻译:我已经通过将sqljdbc4.jar重新安装到项目的lib文件夹并再次将路径lib / sqljdbc4.jar重新插入到classpath来解决了这个问题。此外,我已经将请求执行功能移动到单独的项目类中以获得辅助功能,并且所有开始工作......所以只需要几次打开/关闭库,所有这些都可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.