Scala 找不到SQL Server依赖项
为此,我使用sbt将一个应用程序打包在一个jar文件中。 当我从IDE(IntelliJ)运行应用程序时,它可以正常工作。 然而,当我试图直接运行jar时,我有两个不同的问题 当我从spark submit运行它时,我得到:Scala 找不到SQL Server依赖项,scala,apache-spark,intellij-idea,sbt,Scala,Apache Spark,Intellij Idea,Sbt,为此,我使用sbt将一个应用程序打包在一个jar文件中。 当我从IDE(IntelliJ)运行应用程序时,它可以正常工作。 然而,当我试图直接运行jar时,我有两个不同的问题 当我从spark submit运行它时,我得到: [cloudera@quickstart bin]$ spark-submit --class com.my.app.main --master local[0] /home/cloudera/Projects/myapp/target/scala-2.11/myapp.j
[cloudera@quickstart bin]$ spark-submit --class com.my.app.main --master local[0] /home/cloudera/Projects/myapp/target/scala-2.11/myapp.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerDataSource
[cloudera@quickstart scala-2.11]$ java -jar myapp.jar
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq
at com.my.app.main$.main(main.scala:13)
at com.my.app.main.main(main.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
当我从java运行它时,我得到:
[cloudera@quickstart bin]$ spark-submit --class com.my.app.main --master local[0] /home/cloudera/Projects/myapp/target/scala-2.11/myapp.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerDataSource
[cloudera@quickstart scala-2.11]$ java -jar myapp.jar
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq
at com.my.app.main$.main(main.scala:13)
at com.my.app.main.main(main.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
请注意,JDBC for SQL Server已经放在lib文件夹中,sbt在生成包时支持在该文件夹中自动识别它
任何帮助都将不胜感激
多谢各位
编辑:我的问题在那篇文章中没有得到回答
我将根据您的情况修改:
spark-submit --class com.my.app.main \
--master local[0] /home/cloudera/Projects/myapp/target/scala-2.11/myapp.jar \
--jars path_to/sqljdbc42.jar
这一个对我有用,从微软官方网站下载jdbc jar。可能重复“对不起”,但这个问题的答案太宽,无法找到与我的问题的关系。