我正在尝试使用 sbt 1.0.4 和 sbt- assembly 0.14.6 来组装 Spark 应用程序。
Spark 应用程序在 IntelliJ IDEA 或 中启动时工作正常spark-submit
,但如果我使用命令行(Windows 10 中的 cmd)运行组装的 uber-jar:
java -Xmx1024m -jar my-app.jar
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
线程“main”中出现异常 java.lang.ClassNotFoundException:找不到数据源:jdbc。请在http://spark.apache.org/third-party-projects.html找到软件包
Spark 应用程序如下所示。
package spark.main
import java.util.Properties
import org.apache.spark.sql.SparkSession
object Main {
def main(args: Array[String]) {
val connectionProperties = new Properties()
connectionProperties.put("user","postgres")
connectionProperties.put("password","postgres")
connectionProperties.put("driver", "org.postgresql.Driver")
val testTable = "test_tbl"
val spark = SparkSession.builder()
.appName("Postgres Test")
.master("local[*]")
.config("spark.hadoop.fs.file.impl", classOf[org.apache.hadoop.fs.LocalFileSystem].getName)
.config("spark.sql.warehouse.dir", System.getProperty("java.io.tmpdir") + "swd")
.getOrCreate()
val dfPg = spark.sqlContext.read.
jdbc("jdbc:postgresql://localhost/testdb",testTable,connectionProperties)
dfPg.show()
} …
Run Code Online (Sandbox Code Playgroud)