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视图相关推荐

  1. sparksql 操作hive_Spark SQL 物化视图原理与实践

    导言 物化视图作为一种预计算的优化方式,广泛应用于传统数据库中,如Oracle,MSSQL Server等.随着大数据技术的普及,各类数仓及查询引擎在业务中扮演着越来越重要的数据分析角色,而物化视图作 ...

  2. 2021年大数据Spark(二十八):SparkSQL案例三电影评分数据分析

    目录 案例三:电影评分数据分析 代码实现 Shuffle分区数 案例三:电影评分数据分析 使用电影评分数据进行数据分析,分别使用DSL编程和SQL编程,熟悉数据处理函数及SQL使用,业务需求说明: 对 ...

  3. 2021年大数据Spark(二十七):SparkSQL案例一花式查询和案例二WordCount

    目录 案例一:花式查询 案例二:WordCount 基于DSL编程 基于SQL编程 具体演示代码如下: 案例一:花式查询 package cn.itcast.sqlimport org.apache. ...

  4. 2021年大数据Spark(二十六):SparkSQL数据处理分析

    目录 SparkSQL数据处理分析 基于DSL分析 基于SQL分析 第一步.注册为临时视图 第二步.编写SQL,执行分析 ​​​​​​​SparkSQL数据处理分析 在SparkSQL模块中,将结构化 ...

  5. sparkSQL1.1入门之二:sparkSQL执行架构

    在介绍sparkSQL之前.我们首先来看看,传统的关系型数据库是怎么执行的.当我们提交了一个非常easy的查询: SELECT a1,a2,a3 FROM tableA Where condition ...

  6. SparkSQL介绍

    基本概念 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块. 其前身是 Shark,给熟悉 RDBMS ,但又不理解 MapReduce 的 ...

  7. qt5编程入门 第2版_2小时入门SparkSQL编程

    一,RDD,DataFrame和DataSet DataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息. DataSet在DataFrame基础上进一步增加了数据 ...

  8. SparkSql官方文档中文翻译(java版本)

    1 概述(Overview) 2 DataFrames 2.1 入口:SQLContext(Starting Point: SQLContext) 2.2 创建DataFrames(Creating ...

  9. spark-sql建表语句限制_第三篇|Spark SQL编程指南

    在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...

最新文章

  1. java B2B2C Springcloud电子商城系统-断路器(Hystrix)
  2. 分布式,微信小程序 服务器保持登入态解决方案,
  3. 谈一谈CMU导师和学生的互动方式
  4. 《MyBatis技术原理与实战》之SqlSession的用途
  5. svn 没有绿色小勾
  6. unity项目中使用BUGLY遇到的的几个问题
  7. Opportunity在Fiori cloud system上编辑之后超时的根源分析
  8. 利用Maven逆向工程生成mybatis映射文件
  9. 一位Oracle顶流铁粉的“躬身入局”
  10. 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第一部分
  11. 在Intranet环境中保护.NETWeb应用程序方案(转)
  12. c++ 返回空对象_python中file对象的常用方法
  13. 【软件定义汽车】【中间件】iceoryx冰羚
  14. python print字体颜色 print背景颜色
  15. 训练神经网络gpu占用率低,外接gpu 训练神经网络
  16. phpstorm使用小技巧一
  17. Xendesktop5.6发布personal vdisk失败的处理方法
  18. geoip 注册_【注册】饲料添加剂巴基斯坦注册简介
  19. 【夏季美女们穿的“清凉”容易引男生的狼眼】
  20. Adobe Photoshop CC制作logo

热门文章

  1. H3C路由器配置DHCP,交换机透明。
  2. UIStoryboardSegue(多控制器)
  3. 打鸭子java代码_【Java JDK和VirtuaNES(FC模拟器)哪个好用】Java JDK和VirtuaNES(FC模拟器)对比-ZOL下载...
  4. 无线网手动添加服务器,无线网络手动设置的问题解决v
  5. php7.2.7curl扩展,如何使用PHP 7安装ext-curl扩展?
  6. stm32输入捕获,捕获高电平
  7. 提醒工作的电脑闹钟软件用哪个?
  8. 超好用的网页标记插件pagenote
  9. [paper] DuReader
  10. 零基础HTML教程(13)--霸道的div与和气的span