spark SQL編程動手實戰-01

首先創建SparkContext上下文:


接着引入隱身轉換,用於把RDD轉成SchemaRDD:


接下來定義一個case class 來用於描述和存儲SQL表中的每一行數據:


接下來要加載數據,這裏的測試數據是user.txt文件:

我們創建好use.txt增加內容並上傳到hdfs中:


web控制檯查詢:


hdfs命令查詢:


 

加載數據:


驗證數據是否加載成功:


 

註冊成爲user的table:


 

此刻user還是一個MappedRDD:


執行age 大於13 小於19的SQL查詢:


此刻的teenagers已經隱身轉換成SchemaRDD


通過collect操作觸發job的提交和執行:


結果:


 

DSL是Domain Specific Language的縮寫,使用DSL我們可以直接基於讀取的RDD數據進行SQL操作,無需註冊成Table。

我們重新啓動下spark-shell:


 

同樣使用"user.txt"的數據:


驗證user:


 

我們這次直接使用SQL查詢操作:


 

使用toDebugString查看下結果:


可以發現使用DSL的使用teenagers在內部已經被隱身轉換了SchemaRDD的實例


 

可以發現與前面那張註冊Table方式的結果是一樣的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章