spark實驗(五)--Spark SQL 編程初級實踐(1)


一、實驗目的
(1)通過實驗掌握 Spark SQL 的基本編程方法;

(2)熟悉 RDD 到 DataFrame 的轉化方法;

(3)熟悉利用 Spark SQL 管理來自不同數據源的數據。


二、實驗平台
操作系統: centos6.4 Spark 版本:1.5.0 數據庫:MySQL

 

三、實驗內容

實驗一

1.Spark SQL 基本操作
將下列 JSON 格式數據復制到 Linux 系統中,並保存命名為 employee.json。

 

 

為 employee.json 創建 DataFrame,並寫出 Scala 語句完成下列操作:

進入spark-shell中,輸入以下命令:

val sqlcontext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlcontext.read.json("file:///usr/local/sparkdata/employee.json")

 

 

接着完成實驗:

(1) 查詢所有數據;
df.show()


(2) 查詢所有數據,並去除重復的數據;
df.distinct().show()


(3) 查詢所有數據,打印時去除 id 字段;
df.drop("id").show()


(4) 篩選出 age>30 的記錄;
df.filter(df("age")>30).show()


(5) 將數據按 age 分組;
df.sort(df("age").asc).show()


(6) 將數據按 name 升序排列;
df.sort(df("name").asc).show()


(7) 取出前 3 行數據;
df.take(3)或df.head(3)


(8) 查詢所有記錄的 name 列,並為其取別名為 username;
df.select(df("name").as("username")).show()


(9) 查詢年齡 age 的平均值;
df.agg("age"->"avg").show()


(10) 查詢年齡 age 的最小值。
df.agg("age"->"min").show()

 

實驗二

2.編程實現將 RDD 轉換為 DataFrame
源文件內容如下(包含 id,name,age): 

請將數據復制保存到 Linux 系統中,命名為 employee.txt,實現從 RDD 轉換得到 DataFrame,並按“id:1,name:Ella,age:36”的格式打印出 DataFrame 的所有數據。請寫出程序代 碼。

 

 

實驗三

3. 編程實現利用 DataFrame 讀寫 MySQL 的數據
(1)在 MySQL 數據庫中新建數據庫 sparktest,再創建表 employee,包含如表 6-2 所示的 兩行數據。

 

 (2)配置 Spark 通過 JDBC 連接數據庫 MySQL,編程實現利用 DataFrame 插入如表 6-3 所 示的兩行數據到 MySQL 中,最后打印出 age 的最大值和 age 的總和。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM