SparkSQL视图
Spark视图分类
视图是基于真实表的一张虚拟的表,其数据来源均建立在真实表的基础
视图提供的是对查询操作的封装,本身不包含数据,所呈现的数据是根据视图定义从基础表中检索出来的,如果基础表的数据新增或删除,视图呈现的也是更新后的数据。视图定义后,编写完所需的查询,可以方便地重用该视图
临时视图(temporary view)
临时视图只适用于SparkSQL,无法在MySQL和Hive中使用
- 只在当前会话【有效】,如果会话结束,则临时视图【消失】
- 支持重新覆盖
- 缓存表也属于临时视图,可以在spark监控页面中的Storage查看
永久视图(view)
- 保存一段查询语句的【过程逻辑】,而不是查询语句的【结果】
- 永久有效,查询这个视图,相当于查询【原select 语句】,如果保存的查询逻辑复杂,这查询视图也耗时
- 支持重新覆盖
案例代码
-- 临时视图
create temporary view tmp_view(name,age) as values ('Jack',19);
-- 支持重新覆盖
create or replace temporary view or_replace_tmp_view(name,age) as values ('Jack',19);-- 缓存表
--cache语法在pycharm中会红色警告,不用理会,选中运行即可
cache table cache_table as select * from tmp_view;-- 永久视图
create view view1(name,age) as values ('Jack',19);
-- 支持重新覆盖
create or replace view view2(name,age) as values ('Jack',19);--查看所有的视图(没法看表)
show views;
--查看所有的表,也会显示视图
show tables;
应用
拓展横向迭代计算的5种方法
已知c1字段,计算c2和c3字段
c1 | c2=c1+2 | c3=c1*c2 |
---|---|---|
1 | ||
2 | ||
3 |
drop view if exists test1;
--快速创建数据集
create or replace temporary view test1(c1) as values (1),(2),(3);--方式一、用子查询的方式
select c1,c2,c1 * c2 as c3
from (select c1,c1 + 2 as c2 from test1);--方式二、用with as
with tmp as (select c1,c1 + 2 as c2 from test1)
select c1,c2,c1 * c2 as c3
from tmp;--方式三、用永久视图view
create or replace view view1 as select c1, c1 + 2 as c2 from test1;
create or replace view view2 as select c1,c2,c1*c2 as c3 from view1;--方式四、用临时视图temporary view
create or replace temporary view temp_view1 as select c1, c1 + 2 as c2 from test1;
create or replace temporary view temp_view2 as select c1, c1 + 2 as c2 from temp_view1;--方式五、用缓存表cache table
cache table cache_table1 as select c1,c1+2 as c2 from test1;
cache table cache_table2 as select c1,c2,c1*c2 as c3 from cache_table1;select * from view2;
+------+-----+------+
| c1 | c2 | c3 |
+------+------+------+
| 1 | 3 | 3 |
| 2 | 4 | 8 |
| 3 | 5 | 15 |
+------+------+------+
SparkSQL视图相关推荐
- sparksql 操作hive_Spark SQL 物化视图原理与实践
导言 物化视图作为一种预计算的优化方式,广泛应用于传统数据库中,如Oracle,MSSQL Server等.随着大数据技术的普及,各类数仓及查询引擎在业务中扮演着越来越重要的数据分析角色,而物化视图作 ...
- 2021年大数据Spark(二十八):SparkSQL案例三电影评分数据分析
目录 案例三:电影评分数据分析 代码实现 Shuffle分区数 案例三:电影评分数据分析 使用电影评分数据进行数据分析,分别使用DSL编程和SQL编程,熟悉数据处理函数及SQL使用,业务需求说明: 对 ...
- 2021年大数据Spark(二十七):SparkSQL案例一花式查询和案例二WordCount
目录 案例一:花式查询 案例二:WordCount 基于DSL编程 基于SQL编程 具体演示代码如下: 案例一:花式查询 package cn.itcast.sqlimport org.apache. ...
- 2021年大数据Spark(二十六):SparkSQL数据处理分析
目录 SparkSQL数据处理分析 基于DSL分析 基于SQL分析 第一步.注册为临时视图 第二步.编写SQL,执行分析 SparkSQL数据处理分析 在SparkSQL模块中,将结构化 ...
- sparkSQL1.1入门之二:sparkSQL执行架构
在介绍sparkSQL之前.我们首先来看看,传统的关系型数据库是怎么执行的.当我们提交了一个非常easy的查询: SELECT a1,a2,a3 FROM tableA Where condition ...
- SparkSQL介绍
基本概念 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块. 其前身是 Shark,给熟悉 RDBMS ,但又不理解 MapReduce 的 ...
- qt5编程入门 第2版_2小时入门SparkSQL编程
一,RDD,DataFrame和DataSet DataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息. DataSet在DataFrame基础上进一步增加了数据 ...
- SparkSql官方文档中文翻译(java版本)
1 概述(Overview) 2 DataFrames 2.1 入口:SQLContext(Starting Point: SQLContext) 2.2 创建DataFrames(Creating ...
- spark-sql建表语句限制_第三篇|Spark SQL编程指南
在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...
最新文章
- java B2B2C Springcloud电子商城系统-断路器(Hystrix)
- 分布式,微信小程序 服务器保持登入态解决方案,
- 谈一谈CMU导师和学生的互动方式
- 《MyBatis技术原理与实战》之SqlSession的用途
- svn 没有绿色小勾
- unity项目中使用BUGLY遇到的的几个问题
- Opportunity在Fiori cloud system上编辑之后超时的根源分析
- 利用Maven逆向工程生成mybatis映射文件
- 一位Oracle顶流铁粉的“躬身入局”
- 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第一部分
- 在Intranet环境中保护.NETWeb应用程序方案(转)
- c++ 返回空对象_python中file对象的常用方法
- 【软件定义汽车】【中间件】iceoryx冰羚
- python print字体颜色 print背景颜色
- 训练神经网络gpu占用率低,外接gpu 训练神经网络
- phpstorm使用小技巧一
- Xendesktop5.6发布personal vdisk失败的处理方法
- geoip 注册_【注册】饲料添加剂巴基斯坦注册简介
- 【夏季美女们穿的“清凉”容易引男生的狼眼】
- Adobe Photoshop CC制作logo
热门文章
- H3C路由器配置DHCP,交换机透明。
- UIStoryboardSegue(多控制器)
- 打鸭子java代码_【Java JDK和VirtuaNES(FC模拟器)哪个好用】Java JDK和VirtuaNES(FC模拟器)对比-ZOL下载...
- 无线网手动添加服务器,无线网络手动设置的问题解决v
- php7.2.7curl扩展,如何使用PHP 7安装ext-curl扩展?
- stm32输入捕获,捕获高电平
- 提醒工作的电脑闹钟软件用哪个?
- 超好用的网页标记插件pagenote
- [paper] DuReader
- 零基础HTML教程(13)--霸道的div与和气的span