初识大数据(十一)-----Spark SQL简介

1. SparkSQL是什么?

SparkSQL是分布式SQL引擎,底层依赖RDD,处理结构化数据的一个模块
在这里插入图片描述

2、SparkSQL的入口

SparkSession

val spark = SparkSession.builder().enableHiveSupport().getOrCreate

3. spark sql与hive的不同

1、Hive 是基于MapReduce框架实现SQL基本操作
2、Spark SQL拥有Catalyst优化器
3、Spark SQL能够支持不同数据源

4、Spark能代替Hive吗?

1、hive是数据仓库,Spark SQL没有自己的存储,Hive集成HDFS
2、Spark SQL没有自己的元数据管理,要依赖Hive
3、Hive有sqoop,flume等数据源同步配套组件
4、Hive只作为存储,Spark负责解析和执行

5、spark访问hive仓库

在这里插入图片描述
1、在 $Spark_HOME/conf下添加hive-site.xml文件
2、启动thriftserver服务

./$Spark_HOME/sbin/start-thriftserver.sh

6、Spark运行原理

1、spark SQL执行计划
在这里插入图片描述
在这里插入图片描述
2、catalyst优化器
在这里插入图片描述

7、Data frame和Data Set是什么

1、和RDD一样,都是Spark平台下的分布式弹性数据集
2、DF是以RDD为基础的分布式数据集,是ROW对象的集合
3、DataSet是DataFrame的一个特例
4、DataSet是强类型的数据集,

在这里插入图片描述
5、创建DataFrame的方法
1、通过创建文件
1)json文件
sparkSession.read.json("/nginx/2424.json")
2)csv文件
sparkSession.read.csv(“nginx/234322.csv”)
3)parquet文件
sparksession.read.parquet("/nginx/2423.parquet")

2、通过RDD转换为DF
1)通过自定义case class
2)通过自定以schema

6、创建DataSet的方法
1、通过已存在的RDD来创建
2、通过DataFrame转换生成

7、DataSet与RDD交互
toDS()将RDD转换为DataSet
rdd()将DataSet转换为RDD

欲了解更多相关知识,请关注公众后:架构师Plus.
公众号里有彩蛋哦,有一个去视频水印的工具,很好用哦.
在这里插入图片描述

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