当先锋百科网

首页 1 2 3 4 5 6 7

一、认识SparkSQL

1.1 什么是SparkSQL

spark SQL是spark的一个模块,主要用于进行结构化数据的处理。它提供的最核心的编程抽象就是DataFrame。

1.2 SparkSQL的作用

提供一个编程抽象(DataFrame) 并且作为分布式 SQL 查询引擎

1.3 运行原理

将 Spark SQL 转化为 RDD, 然后提交到集群执行

1.4 特点

(1)容易整合
(2)统一的数据访问方式
(3)兼容 Hive
(4)标准的数据连接

1.5 SparkSession

SparkSession封装了SparkConf、SparkContext和SQLContext

1.6 DataFrames

DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格,DataFrame所表示的二维表数据集的每一列都带有名称和类型。RDD,由于无从得知所存数据元素的具体内部结构,Spark Core只能在stage层面进行简单、通用的流水线优化。
DataFrame:它可以根据很多源进行构建,包括:结构化的数据文件,hive中的表,外部的关系型数据库,以及RDD

二、RDD转换成为DataFrame

方式一:通过 RDD转换 DataFrames
方式二:通过 structType 或者 case class 创建 DataFrames(编程接口)
方式三:通过 数据源文件创建 DataFrames

三、RDD vs DataFrames vs DataSet

3.1 RDD

RDD是一个懒执行的不可变并行数据集合。

3.2 DataFrames

DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息。
Spark框架本身不了解数据集的内部结构,而DataFrame却提供了详细的结构信息,使得Spark SQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。DataFrame多了数据的结构信息的schema。

3.3 Dataset

1、Dataframe是Dataset的特列
2、样例类被用来在Dataset中定义数据的结构信息,样例类中每个属性的名称直接映射到DataSet中的字段名称
3、DataFrame只是知道字段,但是不知道字段的类型,DataSet不仅仅知道字段,而且知道字段类型

四、Spark SQL 的运行原理

Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析、绑定、优化、执行。Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对Tree进行绑定、优化等处理过程。

Spark学习之路 (十八)SparkSQL简单使用
Spark SQL概述

Spark SQL的底层执行流程