2016-11-28 29 views
-2

我對Apache Spark非常陌生。
我已經在本地windows機器上配置了spark 2.0.2。 我已經完成了與火花「字數統計」的例子。
現在,我在執行SQL查詢時遇到了問題。 我已經搜索過相同的內容,但沒有得到正確的指導。如何在Apache Spark中執行sql查詢


任何幫助非常感謝!
感謝高級!

+0

那麼,你的問題是什麼?你遇到一些錯誤? –

+0

error:not found:value sqlContext –

+0

運行以下命令時出現上述異常 –

回答

0

火花2.X你不再引用sqlContext,而是spark,所以你需要做的:

spark 
    .read 
    .format("jdbc") 
    .option("url", "jdbc:mysql://localhost:3306/mydb") 
    .option("driver", "com.mysql.jdbc.Driver") 
    .option("dbtable", "mydb") 
    .option("user", "root") 
    .option("password", "") 
    .load() 
2

所以你需要做這些事情把它完成,

火花2.0.2我們有SparkSession,其中包含SparkContext實例以及sqlContext實例。

因此,步驟是:

第1步:創建SparkSession

val spark = SparkSession.builder().appName("MyApp").master("local[*]").getOrCreate() 

第2步:從你的情況的Mysql數據庫負載。

val loadedData=spark 
     .read 
     .format("jdbc") 
     .option("url", "jdbc:mysql://localhost:3306/mydatabase") 
     .option("driver", "com.mysql.jdbc.Driver") 
     .option("mytable", "mydatabase") 
     .option("user", "root") 
     .option("password", "toor") 
     .load().createOrReplaceTempView("mytable") 

第3步:現在可以運行你的類SqlQuery就像你在做SqlDatabase。

val dataFrame=spark.sql("Select * from mytable") 
dataFrame.show() 

P.S:如果您使用的數據幀阿比的,甚至更好,如果數據集阿比的,但對於那些你需要去通過文檔它會更好。

鏈接到Documentation:https://spark.apache.org/docs/2.0.0/api/scala/index.html#org.apache.spark.sql.Dataset