一、实验目的
(1)通过实验掌握 Spark SQL 的基本编程方法;
(2)熟悉 RDD 到 DataFrame 的转化方法;
(3)熟悉利用 Spark SQL 管理来自不同数据源的数据。
二、实验平台 操作系统: Ubuntu16.04 Spark 版本:2.1.0 数据库:MySQL
三、实验内容和要求
1.Spark SQL 基本操作 将下列 JSON 格式数据复制到 Linux 系统中,并保存命名为 employee.json。 { "id":1 , "name":" Ella" , "age":36 } { "id":2, "name":"Bob","age":29 } { "id":3 , "name":"Jack","age":29 } { "id":4 , "name":"Jim","age":28 } { "id":4 , "name":"Jim","age":28 } { "id":5 , "name":"Damon" } { "id":5 , "name":"Damon" } 为 employee.json 创建 DataFrame,并写出 Scala 语句完成下列操作:
(1) 查询所有数据;
(2) 查询所有数据,并去除重复的数据;
(3) 查询所有数据,打印时去除 id 字段;
(4) 筛选出 age>30 的记录;
(5) 将数据按 age 分组;
(6) 将数据按 name 升序排列;
(7) 取出前 3 行数据;
(8) 查询所有记录的 name 列,并为其取别名为 username;
(9) 查询年龄 age 的平均值;
(10) 查询年龄 age 第 2 页 的最小值。
1.再MobaXter里
cd`/home/hadoop
创建
vim employee.json`
把数据粘上去


2.再IDEA上
创建
case object SparkSQLjibencaozuo

里面代码
package edu.hnuahe.wanqing.spark_6_3_CreateDataFrame
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
case object SparkSQLjibencaozuo{
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder.appName("EmployeeData").getOrCreate()
import spark.implicits._
// 加载 JSON 数据到 DataFrame
//val employeeDF = spark.read.json("employee.json")
val employeeDF = spark.read.json("file:///home/hadoop/employee.json")
// (1) 查询所有数据
employeeDF.show()
// (2) 查询所有数据,并去除重复的数据
val distinctEmployeeDF = employeeDF.distinct()
distinctEmployeeDF.show()
// (3) 查询所有数据,打印时去除 id 字段
employeeDF.select("name", "age").show()
// (4) 筛选出 age>30 的记录
employeeDF.filter($"age" > 30).show()
// (5) 将数据按 age 分组
employeeDF.groupBy("age").count().show()
// (6) 将数据按 name 升序排列
employeeDF.orderBy($"name".asc).show()
// (7) 取出前 3 行数据
employeeDF.limit(3).show()
// (8) 查询所有记录的 name 列,并为其取别名为 username
employeeDF.select($"name".as("username")).show()

最低0.47元/天 解锁文章
467

被折叠的 条评论
为什么被折叠?



