iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Spark临时表tempView的注册/使用/注销/注意事项(推荐)
  • 956
分享到

Spark临时表tempView的注册/使用/注销/注意事项(推荐)

2024-04-02 19:04:59 956人浏览 薄情痞子
摘要

目录createTempView运作原理低效做法缓存临时表方式:方式1 创建方式2方式3临时表生命周期createTempView运作原理 先说一个众人皆知的知识:spark中的算子包含transfORMation算子和

createTempView运作原理

先说一个众人皆知的知识:
spark中的算子包含transfORMation算子和action算子,transformation是根据原有RDD创建一个新的RDD,而action则把RDD操作后的结果返回给driver。Spark对transformation的抽象可以大大提高性能,这是因为在Spark中,所有transformation操作都是lazy模式,即Spark不会立即计算结果,而只是简单地记住所有对数据集的转换操作逻辑。这些转换只有遇到action操作的时候才会开始计算。这样的设计使得Spark更加高效。

低效做法

sql("select a,b from table where xxx").createTempView("view1")
sql("select a from view1 where xxx").show()
sql("select b from view1 where xxx").show()

使用createTempView后,查询这个视图每次都很耗时了,正是因为createTempView操作是lazy模式,在没有action算子触发之前,它并没有什么实质性的运作,仅仅记录了一个创建视图的逻辑
Spark每次遇到action算子show()方法的时候,才开始真正计算,上面代码中两次用到视图view1,那么意味着创建视图的方法会执行两次,因此非常的耗时,所以需要对view1进行缓存处理

缓存临时表方式:

方式1 创建

// 创建它的SparkSession对象终止前有效
df.createOrReplaceTempView("tempViewName")  
// spark应用程序终止前有效
df.createOrReplaceGlobalTempView("tempViewName") 

注销

spark.catalog.dropTempView("tempViewName")
spark.catalog.dropGlobalTempView("tempViewName")

方式2

创建

session.table("tempViewName").cache()

注销

session.table("tempViewName").unpersist()

方式3

创建

commonDF.cahe() 或 commonDF.persist(StorageLevel.MEMORY_AND_DISK)
commonDF.createOrReplaceTempView("tempViewName")

注销

commonDF.unpersist()

临时表生命周期

源码

createOrReplaceTempView

  
  def createOrReplaceTempView(viewName: String): Unit = withPlan {
    createTempViewCommand(viewName, replace = true, global = false)
  }

也就是说,当一下代码中spark stop(),之后 创建的临时视图表才失效

createGlobalTempView


  @throws[AnalysisException]
  def createGlobalTempView(viewName: String): Unit = withPlan {
    createTempViewCommand(viewName, replace = false, global = true)
  }

到此这篇关于Spark临时表tempView的注册/使用/注销/注意事项的文章就介绍到这了,更多相关Spark临时表tempView内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: Spark临时表tempView的注册/使用/注销/注意事项(推荐)

本文链接: https://www.lsjlt.com/news/45507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spark临时表tempView的注册/使用/注销/注意事项(推荐)
    目录createTempView运作原理低效做法缓存临时表方式:方式1 创建方式2方式3临时表生命周期createTempView运作原理 先说一个众人皆知的知识:Spark中的算子包含transformation算子和...
    99+
    2022-10-18
  • 【TEMPORARY TABLE】Oracle临时表使用注意事项
      此文将给出在使用Oracle临时表的过程中需要注意的事项,并对这些特点进行验证。  ①临时表不支持物化视图  ②可以在临时表上创建索引  ③可以基于临时表创建视图  ④临时表结构可被导出...
    99+
    2023-06-06
  • Java中数组的使用与注意事项详解(推荐)
    目录一.初始数组二.数组的创建三.使用数组时的注意事项(1)初始化问题(2)数组长度的使用(3)有关数组长度的问题(4)对于数组的访问(5)数组的遍历三.数组的类型1、每个部分数据区...
    99+
    2022-11-12
  • 关于replaceFirst使用时的注意事项
    目录replaceFirst使用时的注意事项坑一坑二String类的replaceFirst方法不好用的原因代码一代码二replaceFirst使用时的注意事项 公司项目最近有一个开...
    99+
    2022-11-13
  • replaceFirst使用时的注意事项有哪些
    这篇文章主要介绍了replaceFirst使用时的注意事项有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。replaceFirst使用时的注意事项公司项目最近有一个开发填...
    99+
    2023-06-29
  • 详解Android Service 使用时的注意事项
    最近有个项目刚好使用了Service,特别是AIDL远程服务,经过这次项目对Service有了更好的理解,在这里作个总结。startService / bindService 混合使用 每一次调用 startService 都会回调onS...
    99+
    2023-05-30
    android service roi
  • Lambda表达式的使用及注意事项
    目录Lambda表达式的使用Lambda表达式的省略模式Lambda使用注意事项Lambda表达式和匿名内部类的区别Lambda表达式的使用 练习: 定义一个接口flyable,里面...
    99+
    2022-11-13
  • 关于golang中map使用的几点注意事项总结(强烈推荐!)
    目录前言1 使用 map 记得初始化2 map 的遍历是无序的3 map 也可以是二维的4 获取 map 的 key 最好使用这种方式5 map 是并发不安全的 ,sync.Map ...
    99+
    2023-01-28
    golang map操作 golang map使用 go语言的map
  • MySQL使用Amoeba作为Proxy时的注意事项
    (1).Amoeba不支持事务 目前Amoeba不支持事务,任何有关事务的SQL语句都会被Amoeba屏蔽掉。如果必须使用事务,而且事务内的处理操作都可以路由到同一台MySQL上的话,可以考虑在存储过程中使...
    99+
    2022-10-18
  • mysql使用索引时的注意事项有哪些
    mysql使用索引时的注意事项有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql使用索引时需要注意:1、列中含...
    99+
    2022-10-18
  • 使用MySQL时有哪些必须注意的事项
    下文主要给大家带来使用MySQL时有哪些必须注意的事项,希望这些内容能够带给大家实际用处,这也是我编辑使用MySQL时有哪些必须注意的事项这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。 ...
    99+
    2022-10-18
  • 在python中使用集合时需要注意的事项
    这篇文章将为大家详细讲解有关在python中使用集合时需要注意的事项,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语...
    99+
    2023-06-14
  • 使用Seek method做分页时offset predicate的注意事项
    Seek method pagination是最近流行的分页概念。其核心思想是:不再依赖index作为偏移量,而是使用条件表达式作为分页的依据。具体原理我在这里就不再废话了,感兴趣的朋友可以去搜一搜。由于“...
    99+
    2022-10-18
  • 六个Java集合使用时需要注意的事项
    目录1.集合判空2.集合转 Map3.集合遍历4.集合去重5.集合转数组6.数组转集合1.集合判空 判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size(...
    99+
    2023-01-29
    Java集合使用 Java集合
  • 在python中使用zip函数时需要注意的事项
    在python中使用zip函数时需要注意的事项?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工...
    99+
    2023-06-14
  • 基于Spring Boot使用JpaRepository删除数据时的注意事项
    问题: 在Spring Boot中使用JpaRepository的deleteById(ID id)方法删除数据时,首先要使用existsById(ID id)方法判断数据...
    99+
    2022-11-12
  • ​香港服务器使用时需要注意的事项有哪些
    香港服务器使用时需要注意的事项:1.购买香港服务器后要及时更改服务器密码,定期更换密码。2. 不要随意更改设置,建议在本地电脑上测试后再去更改服务器。 3. 不要在服务器上运行可能会带来安全问题的应用程序,避免服务器被入侵和数据被盗。4. ...
    99+
    2022-10-21
  • 关于phpcms2008 内部递增标变量 $n 使用时的注意事项
    1.在phpcms2008中,有一个递增的内部变量 $n,它是从1开始逐渐递增的,如果{$n}则表示具体的值。 2.当它和 {if ...}...{else}...{/if} 语句配合使用时,需要注意在表达式中获取$n的...
    99+
    2022-06-12
    递增标变量
  • Python 编程算法中使用实时接口的注意事项有哪些?
    Python 编程语言在金融领域和算法交易中被广泛使用。Python 具有易于学习的语法和强大的库,可以轻松地处理数据和实现算法。实时接口是算法交易中必不可少的一部分,Python 也提供了一些强大的实时接口库。但是,在使用这些库之前,需...
    99+
    2023-10-02
    编程算法 接口 实时
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作