標籤:
在spark-default.conf檔案中明明配置了mysql的資料來源串連
隨後啟動spark-shell 執行如下測試代碼:
import org.apache.spark.{SparkContext, SparkConf}import org.apache.spark.sql.{SaveMode, DataFrame}import org.apache.spark.sql.hive.HiveContextval mySQLUrl = "jdbc:mysql://localhost:3306/yangsy?user=root&password=yangsiyi" val people_DDL = s""" CREATE TEMPORARY TABLE PEOPLE USING org.apache.spark.sql.jdbc OPTIONS ( url ‘${mySQLUrl}‘, dbtable ‘person‘ )""".stripMargin sqlContext.sql(people_DDL) val person = sql("SELECT * FROM PEOPLE").cache()val name = "name"val targets = person.filter("name ="+name).collect()
collect()的時候報找不到driver
這個問題就很詭異了。。資料來源串連也沒錯啊,畢竟在hive的metastore也是用的這個啊。。最終只能在啟動spark-shell的時候同時引入jar包了= =
./spark-shell --jars /usr/local/spark-1.4.0-bin-2.5.0-cdh5.2.1/lib/mysql-connector-java-5.1.30-bin.jar
隨後再執行就OK了。。詭異。。
或者在執行collect()之前引入mysql的jar包也可以
sqlContext.sql("add jar /usr/local/spark-1.4.0-bin-2.5.0-cdh5.2.1/lib/mysql-connector-java-5.1.30-bin.jar")
不過總感覺不妥。。有解決辦法的求指導哈~
Spark 1.4串連mysql詭異的問題及解決