spark sql从入门到成魔(一)

spark sql 基本原理

sparksql 概述与架构

sparksql是spark在处理结构化数据的解决方法方案。
sparksql是一个分布式的sql查询引擎语言。
sparksql由 catalyst优化,==sparksql内核 ,hive支持 组成

catalyst优化
优化处理查询语句整个过程的 ,对sql的解析,优化
sparksql内核
对要处理的数据进行获取和输入,执行查询。把执行的结果输出为Dataframe格式。
hive支持
支持对hive数据的处理

sparksql执行流程

1:对sql语句进行sql解析器,生成 Unresolved 逻辑计划
2: Unresolved 逻辑计划经过 catalyst分析器,生成Analyzed 逻辑计划Schema Catalog 则要提取 schema 信息
3:Analyzed 逻辑计划经过 catalyst优化,生成Optimized 逻辑计划
4:Optimized 逻辑计划 通过 spark planner生成 物理计划,调用next,生成可执行的物理计划
5: toDf生成 Dataframe

sparksql 相对于 hive 和 MapReduce 作业的优点

  1. 支持多种语言进行开发如java,scala,python等 。。。
  2. 兼容的数据格式多,hive表,json等。。。
  3. 方便扩展,它解析器和优化器可以重新定义
  4. 性能优化,采用内存列式存储动态字节码生成内存缓存数据

sparksql基本操作命令

数据准备
在这里插入图片描述
导入SparkSession包
在这里插入图片描述

通过SparkSession的builder的getOrCreate来创建SparkSession对象。
在这里插入图片描述

隐式装换,将RDD==>DataFrame
在这里插入图片描述

读取json数据
在这里插入图片描述
查看结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注册为临时view
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

DataFrame 和Dataset 两种的使用

DataFrame:以指定的列组成的分布式数据的集合,相当于关系型数据库中的表,支持多种数据源的构建。
RDD与DataFrame数据结构的区别:
在这里插入图片描述

DataFrame 操作分为 Action基础 DataFrame 函数集成语言查询Output 操作RDD 操作等。

Action

collect、count、first、head、take

在这里插入图片描述
在这里插入图片描述

DataFrame 基础函数

在这里插入图片描述
在这里插入图片描述

spark数据持久化
默认不指定的话就是StorageLevel (内存) ,当内存不足的时候可以选择内存和磁盘
最优是内存 ,避免磁盘io带来的性能消耗。

DataSet

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

集成语言查询

sort
filter
intersect
limit

RDD转DataFrame的方式

两种方式
1:如果提前知道sparkApplication的schema的话可以使用隐式装换
如上面所示

import spark.implicits._ 

在这里插入图片描述

2:通过一个编程接口,允许构建一个 Schema,然后应用到现有的 RDD

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值