Spark SQL
实验目的
1.理解Spark SQL工作原理;
2.掌握Spark SQL使用方法。
实验内容
现有一份汽车销售记录(文件名:Cars.csv),销售记录包括时间、地点、邮政编码、车辆类型等信息,每条记录信息包含39项数据项。按步骤完成如下操作(建议在Spark-shell中完成):
(1)将汽车销售记录上传至HDFS;
(2)使用编程方式定义RDD模式,提取月、市、区县、品牌、车辆类型、使用性质和数量7列,并定义相应Schema;
(3)将(2)的结果以json格式保存至HDFS;
(4)读取该json文件,构建DataFrame;
(5)在DataFrame中使用SQL语句实现如下查询:
① 统计各汽车品牌的销量,并按销量从高到低排序;
② 统计各月各汽车品牌的销量;
③ 统计各市的汽车销量,并按销量从低到高排序;
④ 统计不同城市不同车辆类型的销量;
⑤ 统计各城市汽车销量最大的区县;
⑥ 统计1~6月非营运车辆销量最大的前3大品牌。
实验步骤
将汽车销售记录上传至HDFS
使用编程方式定义RDD模式,提取月、市、区县、品牌、车辆类型、使用性质和数量7列,并定义相应Schema;
-
加载数据为Dataset
scala> val d1=spark.read.csv("hdfs:/Cars.csv")
-
用编程方式定义RDD,提取关键字段,定义相应的Schema
scala> import org.apache.spark.sql.types._ scala> import org.apache.spark.sql.Row scala