在讲解 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区别相关推荐

  1. 谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解

    谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解 spark.sql.shuffle.partitio ...

  2. spark core、spark sql、spark streaming 联系与区别

    SparkCore 是做离线批处理 SparkSql 是做sql高级查询 SparkStreaming是做流式处理 SparkShell 是做交互式查询 区别: Spark Core : Spark的 ...

  3. hive sql 和 spark sql的区别

    目录 一.什么是hive,什么是spark (一)hive 1.hive在hadoop中的角色 2.hive和关系型数据库的区别 3.hive 架构及执行流程介绍 (二)spark 1.spark组件 ...

  4. spark.sql.shuffle.partitions 和 spark.default.parallelism 的区别

    在关于spark任务并行度的设置中,有两个参数我们会经常遇到,spark.sql.shuffle.partitions 和 spark.default.parallelism, 那么这两个参数到底有什 ...

  5. Spark SQL应用解析

    一  Spark SQL概述 1.1 什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用 ...

  6. Spark SQL原理及常用方法详解(二)

    Spark SQL 一.Spark SQL基础知识 1.Spark SQL简介 (1)简单介绍 (2)Datasets & DataFrames (3)Spark SQL架构 (4)Spark ...

  7. Cris 的 Spark SQL 笔记

    一.Spark SQL 概述 1.1 什么是Spark SQL Spark SQL 是 Spark 用来处理结构化数据的一个模块,它提供了2个编程抽象: DataFrame 和DataSet,并且作为 ...

  8. 【Spark】Spark SQL, DataFrames and Datasets Guide(翻译文,持续更新)

    本文主要是翻译Spark官网Spark SQL programming guide .只能保证大概意思,尽量保证细节.英文水平有限,如果有错误的地方请指正,轻喷.目录导航在右上角 Spark SQL. ...

  9. Spark SQL玩起来

    标签(空格分隔): Spark [toc] 前言 Spark SQL的介绍只包含官方文档的Getting Started.DataSource.Performance Tuning和Distribut ...

最新文章

  1. 用上AI、用好AI!AiRiA研究院“普惠AI,芯向边缘”战略发布会圆满举行
  2. Android 即时通讯开发小结(二)
  3. goldengate源端意外宕机,传输进程终止,导致OGG-01031报错
  4. 南京信息工程大学c语言真题,南京信息工程大学C语言试题库.doc
  5. (JAVA)复制文件test.txt,并且排序。文件重新命名为test1.txt
  6. 两个html页面之间通讯,面试官:前端跨页面通信,你知道哪些方法?
  7. 算法~将文件夹下所有文件输出到日志文件中(包括所有子文件夹下的)
  8. 获取计算机主机mac地址的命令有,怎么获取计算机的MAC地址和IP地址?
  9. python 结构体嵌套_Python 3不更新嵌套包中的变量(使用“递归”相对导入)
  10. 【Python实例第17讲】均值偏移聚类算法
  11. CMM (集成软件管理(Integrated Software Management)
  12. VS错误的解决解决:LINK fatal error LNK1000: Internal error during IncrBuildImage
  13. 互联网科普-淘宝与天猫的对标
  14. 如何解决VC 应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe问题...
  15. 数字化审图时代批量生成PDF或者DWF利器SmartBatchPlot
  16. win7浏览器主页修改不过来_Win7 IE无法修改默认主页怎么办?解决IE浏览器主页无法修改主页...
  17. 平安金融科技移动技术周报(第二期)
  18. 软件工程 chap-5 需求分析方法
  19. 基于Python实现微信公众号爬虫进行数据分析
  20. [DirectX12学习笔记] 环境光遮蔽

热门文章

  1. P5732 【深基5.习7】杨辉三角(python3实现)
  2. 1.7 编程基础之字符串 31 字符串p型编码 python
  3. 1.9 编程基础之顺序查找 10 找最大数序列(5分) python
  4. STM32H743+CubeMX-解决FDCAN控制器无法接收远程帧
  5. 用php打出2020年是庚子鼠年,2020年庚子鼠年,做到三善,命运必变!
  6. 【七】Java面向对象
  7. QML笔记-Particle的基本使用(粒子系统的基本使用)
  8. Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
  9. Qt工作笔记-QSS中关于QCombox的设置
  10. C++ opengl 天空盒的创建