Spark学习之SparkSQL

    科技2022-07-11  138

    一、认识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的底层执行流程

    Processed: 0.012, SQL: 8