我使用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包
得到了以下错误。我已经从Microsoft网站下载了MS Sql服务器驱动程序(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)
将任何外部jars放在lib
文件夹中,如果不存在,则创建lib
(mkdir-p lib
)。
build.sbt
lib/
sqljdbc42.jar
project/
src/
另一种方法是将jar发布到你的常春藤回购(~/.ivy
)
然后,您可以简单地转到sbt控制台
并验证jar是否已加载。
我使用IntelliJ(sbt项目)创建了以下测试Scala程序。 但是,出现以下错误。我已经从微软网站下载了MS Sql server驱动程序()。如何在sbt项目中设置jar引用?
我创建了一个maven项目。 我正在尝试将MSSQL(Microsoft SQL Server 2014)与我的J2EE应用程序连接起来。但它引发了以下异常 我的代码: 网状物xml 登记 数据库连接 上下文xml
我试图使用servlet实现连接池。我知道有很多类似的问题被问到,但没有一个能帮上忙。 以下是例外: 我在WEB-INF/lib文件夹中添加了jar文件。 下面是我的Servlet代码: 这是context.xml文件
我有个目标: 进入此列表的对象: 我正试着把清单完整地复制下来: 但是我得到一个错误: 获取路线返回:
在这里,我试图将时间戳动态地添加到数据帧中, {“action”:“event”,“id”:1173,“lat”:0.0,“lon”:0.0,“rollid”:55,“event”:“type”,“ccd”:0,“fone”:“ione”,“version”:“10.1”,“item”:“shack”} 在上面传入的数据中,我试图用下面的代码附加时间戳 我哪里出了问题,请帮帮我。
我在spark中编写了一个简单的程序,在mySql中向表中写入一个数据帧。 计划如下: 我的项目的POM文件如下 我运行这个程序使用火花提交(尝试在本地和纱线模式)。我没有显式包含任何jar文件来运行此代码。我一直得到错误: 线程“main”java中出现异常。lang.ClassNotFoundException:com。mysql。jdbc。驾驶员 对此该怎么办?