我使用IntelliJ(sbt项目)创建了以下测试Scala程序。
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import java.sql._
object ConnTest extends App {
val conf = new SparkConf()
val sc = new SparkContext(conf.setAppName("Test").setMaster("local[*]"))
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val jdbcSqlConn = "jdbc:sqlserver://...;databaseName=...;user=...;password=...;"
val jdbcDf = sqlContext.read.format("jdbc").options(Map(
"url" -> jdbcSqlConn,
"dbtable" -> "table1"
)).load()
jdbcDf.show(10)
sc.stop()
}
但是,sbt package
出现以下错误。我已经从微软网站下载了MS Sql server驱动程序(C:\sqljdbc_6.0\enu\jre8\sqljdbc42.jar
)。如何在sbt项目中设置jar引用?
Exception in thread "main" java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(Unknown Source) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$7.apply(JDBCOptions.scala:84) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$7.apply(JDBCOptions.scala:84) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.(JDBCOptions.scala:83) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.(JDBCOptions.scala:34) at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:32) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:330) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:125) at ConnTest$.delayedEndpoint$ConnTest$1(main.scala:14) at ConnTest$delayedInit$body.apply(main.scala:6) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) at ConnTest$.main(main.scala:6) at ConnTest.main(main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:743) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
将任何外部JAR放入lib
文件夹,如果不存在则创建lib
(mkdir-p lib
)。
build.sbt
lib/
sqljdbc42.jar
project/
src/
另一种方法是将jar发布到您的ivy repo(~/.ivy
)
然后您可以简单地转到SBT控制台
并验证jar是否已加载。
我使用IntelliJ(sbt项目)创建了以下测试Scala程序。 但是,得到了以下错误。我已经从Microsoft网站下载了MS Sql服务器驱动程序()。如何设置sbt项目中的jar引用?
我尝试使用TNS URL、用户名和密码连接到Oracle 11i数据库。JNDI正在成功查找数据源,但我无法获得连接。相反,我看到下面的堆栈跟踪。 我的Maven设置如下。 我的Spring MVC应用程序已经部署到Tomcat 8。我的oracle jar文件位于位置。如下所示 我的web.xml配置 我不确定我做错了什么。我能够使用DriverManager API成功连接。我看了下面的帖子,
我正在尝试运行Selenium测试。我正在使用C#。我试过的每个司机都有问题。 看起来像是chromedriver。已找到exe,但它可以找到Chrome二进制文件。我设置了通往chrome的路径。自动搜索失败后显式执行。我甚至在最后用“chrome.exe”试过了。我总是得到同样的结果: 在以下位置找不到Chrome二进制文件: C:\用户\Vilem\AppData\本地\谷歌\Chrome\
启动应用程序时,出现以下错误: 上下文初始化过程中遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名为“Block DataController”的bean时出错:注入资源依赖项失败;嵌套异常为org.springframework.beans.factory.beanCreationException:创
我正在使用JDBC接收器连接器尝试Kafka和Postgres接收器。 例外: 水槽特性: 我已经设置了< code > plugin . path =/usr/share/Java/Kafka-connect-JDBC /usr/share/java/kafka-connect-jdbc我有以下文件: , , 和其他一些基本上与汇合物一起打包的罐子。 然后我下载了 postgres-jdbc 驱
当我创建kafka jdbc源连接器(debezium连接器用于带有confluent-5.4.0的oracle)时,出现错误“没有找到适合jdbc: oracle: oci…”。 我的oracle版本是企业版发布11.2.0.4.0-64位生产,我尝试了不同的驱动程序jar,但得到了相同的异常。 我的jdk版本是: 我已经将 debezium-连接器-预言机添加到文件夹融合-5.4.0/shar