訪問的SQLite數據庫我有以下代碼:無法從星火
val conf = new SparkConf().setAppName("Spark Test")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val data = sqlContext.read.format("jdbc").options(
Map(
"url" -> "jdbc:sqlite:/nv/pricing/ix_tri_pi.sqlite3",
"dbtable" -> "SELECT security_id FROM ix_tri_pi")).load()
data.foreach {
row => println(row.getInt(1))
}
我嘗試與提交:
spark-submit \
--class "com.novus.analytics.spark.SparkTest" \
--master "local[4]" \
/Users/smabie/workspace/analytics/analytics-spark/target/scala-2.10/analytics-spark.jar \
--conf spark.executer.extraClassPath=sqlite-jdbc-3.8.7.jar \
--conf spark.driver.extraClassPath=sqlite-jdbc-3.8.7.jar \
--driver-class-path sqlite-jdbc-3.8.7.jar \
--jars sqlite-jdbc-3.8.7.jar
,但我得到以下異常:
Exception in thread "main" java.sql.SQLException: No suitable driver
我正在使用Spark版本1.6.1,如果有幫助。 謝謝!
「/ nv/pricing/ix_tri_pi.sqlite3」是數據庫的絕對路徑嗎?另外嘗試將你的jar定義爲'spark-submit'的最後一個參數。 –
我真的不能相信這個工作。謝謝一堆。爲什麼地球上的命令行參數的順序不是「spark_submit」不可知的?坦率地說,這讓我感到絕對荒謬...... – sturm
「爲什麼地球上不會有關於命令行參數順序的spark_submit不可知論?」這是[標準](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html):選項首先選擇,參數不是選項後面的選項。特別是,這允許使用'--'分隔操作數。 –