spark-sql createOrReplaceTempView 和createGlobalTempView区别
在讲解 createOrReplaceTempView 和createGlobalTempView的区别前,先了解下Spark Application 和 Spark Session区别
Spark Application
Spark Application 使用:
- 针对单个批处理作业
- 多个job通过session交互式
- 不断满足请求的,长期存在的server
- 一个Spark job 可以包含多个map和reduce
- Spark Application 可以包含多个session实例
Spark Session
SparkSession与Spark应用程序相关联:
- session 是两个或更多实体之间的交互媒介
- 在Spark 2.0中,你可以使用SparkSession创建
- 可以在不创建SparkConf,SparkContext或SQLContext的情况下创建SparkSession(它们封装在SparkSession中)
createOrReplaceTempView使用
createOrReplaceTempView:创建临时视图,此视图的生命周期与用于创建此数据集的[SparkSession]相关联。
createGlobalTempView:创建全局临时视图,此时图的生命周期与Spark Application绑定。
df.createOrReplaceTempView("tempViewName")
df.createGlobalTempView("tempViewName")
createOrReplaceTempView(): 创建或替换本地临时视图。
此视图的生命周期依赖于SparkSession类,如果想drop此视图可采用dropTempView删除
spark.catalog.dropTempView("tempViewName")
或者 stop() 来停掉 session
self.ss = SparkSession(sc) ... self.ss.stop()
createGlobalTempView使用
createGlobalTempView():创建全局临时视图。
这种视图的生命周期取决于spark application本身。如果想drop此视图可采用dropGlobalTempView删除
spark.catalog.dropGlobalTempView("tempViewName")
或者stop() 将停止
ss = SparkContext(conf=conf, ......) ... ss.stop()
注:Spark 2.1.0版本中引入了Global temporary views 。
当您希望在不同sessions 之间共享数据并保持活动直到application结束时,此功能非常有用。
为了说明createTempView和createGlobalTempView的用法,展现实例如下:
object NewSessionApp {def main(args: Array[String]): Unit = {val logFile = "data/README.md" // Should be some file on your systemval spark = SparkSession.builder.appName("Simple Application").master("local").getOrCreate()val logData = spark.read.textFile(logFile).cache()logData.createGlobalTempView("logdata")spark.range(1).createTempView("foo")// within the same session the foo table exists println("""spark.catalog.tableExists("foo") = """ + spark.catalog.tableExists("foo"))//spark.catalog.tableExists("foo") = true// for a new session the foo table does not existsval newSpark = spark.newSessionprintln("""newSpark.catalog.tableExists("foo") = """ + newSpark.catalog.tableExists("foo"))//newSpark.catalog.tableExists("foo") = false//both session can access the logdata tablespark.sql("SELECT * FROM global_temp.logdata").show()newSpark.sql("SELECT * FROM global_temp.logdata").show()spark.stop()} }
转载于:https://www.cnblogs.com/yyy-blog/p/spark-sql.html
spark-sql createOrReplaceTempView 和createGlobalTempView区别相关推荐
- 谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解
谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解 spark.sql.shuffle.partitio ...
- spark core、spark sql、spark streaming 联系与区别
SparkCore 是做离线批处理 SparkSql 是做sql高级查询 SparkStreaming是做流式处理 SparkShell 是做交互式查询 区别: Spark Core : Spark的 ...
- hive sql 和 spark sql的区别
目录 一.什么是hive,什么是spark (一)hive 1.hive在hadoop中的角色 2.hive和关系型数据库的区别 3.hive 架构及执行流程介绍 (二)spark 1.spark组件 ...
- spark.sql.shuffle.partitions 和 spark.default.parallelism 的区别
在关于spark任务并行度的设置中,有两个参数我们会经常遇到,spark.sql.shuffle.partitions 和 spark.default.parallelism, 那么这两个参数到底有什 ...
- Spark SQL应用解析
一 Spark SQL概述 1.1 什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用 ...
- Spark SQL原理及常用方法详解(二)
Spark SQL 一.Spark SQL基础知识 1.Spark SQL简介 (1)简单介绍 (2)Datasets & DataFrames (3)Spark SQL架构 (4)Spark ...
- Cris 的 Spark SQL 笔记
一.Spark SQL 概述 1.1 什么是Spark SQL Spark SQL 是 Spark 用来处理结构化数据的一个模块,它提供了2个编程抽象: DataFrame 和DataSet,并且作为 ...
- 【Spark】Spark SQL, DataFrames and Datasets Guide(翻译文,持续更新)
本文主要是翻译Spark官网Spark SQL programming guide .只能保证大概意思,尽量保证细节.英文水平有限,如果有错误的地方请指正,轻喷.目录导航在右上角 Spark SQL. ...
- Spark SQL玩起来
标签(空格分隔): Spark [toc] 前言 Spark SQL的介绍只包含官方文档的Getting Started.DataSource.Performance Tuning和Distribut ...
最新文章
- 用上AI、用好AI!AiRiA研究院“普惠AI,芯向边缘”战略发布会圆满举行
- Android 即时通讯开发小结(二)
- goldengate源端意外宕机,传输进程终止,导致OGG-01031报错
- 南京信息工程大学c语言真题,南京信息工程大学C语言试题库.doc
- (JAVA)复制文件test.txt,并且排序。文件重新命名为test1.txt
- 两个html页面之间通讯,面试官:前端跨页面通信,你知道哪些方法?
- 算法~将文件夹下所有文件输出到日志文件中(包括所有子文件夹下的)
- 获取计算机主机mac地址的命令有,怎么获取计算机的MAC地址和IP地址?
- python 结构体嵌套_Python 3不更新嵌套包中的变量(使用“递归”相对导入)
- 【Python实例第17讲】均值偏移聚类算法
- CMM (集成软件管理(Integrated Software Management)
- VS错误的解决解决:LINK fatal error LNK1000: Internal error during IncrBuildImage
- 互联网科普-淘宝与天猫的对标
- 如何解决VC 应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe问题...
- 数字化审图时代批量生成PDF或者DWF利器SmartBatchPlot
- win7浏览器主页修改不过来_Win7 IE无法修改默认主页怎么办?解决IE浏览器主页无法修改主页...
- 平安金融科技移动技术周报(第二期)
- 软件工程 chap-5 需求分析方法
- 基于Python实现微信公众号爬虫进行数据分析
- [DirectX12学习笔记] 环境光遮蔽
热门文章
- P5732 【深基5.习7】杨辉三角(python3实现)
- 1.7 编程基础之字符串 31 字符串p型编码 python
- 1.9 编程基础之顺序查找 10 找最大数序列(5分) python
- STM32H743+CubeMX-解决FDCAN控制器无法接收远程帧
- 用php打出2020年是庚子鼠年,2020年庚子鼠年,做到三善,命运必变!
- 【七】Java面向对象
- QML笔记-Particle的基本使用(粒子系统的基本使用)
- Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
- Qt工作笔记-QSS中关于QCombox的设置
- C++ opengl 天空盒的创建