Spark临时表tempView的注册/使用/注销/注意事项(推荐)
2023-06-13 09:19:56 时间
[var]
df.createOrReplaceTempView( tempViewName )
// spark应用程序终止前有效
df.createOrReplaceGlobalTempView( tempViewName )
commonDF.createOrReplaceTempView( tempViewName )
* 使用给定名称创建本地临时视图。此临时视图的生命周期与用于创建此数据集的 SparkSession 相关联。
*
* @group basic
* @since 2.0.0
*/
def createOrReplaceTempView(viewName: String): Unit = withPlan {
createTempViewCommand(viewName, replace = true, global = false)
/**
* 使用给定名称创建一个全局临时视图。此临时视图的生命周期与此 Spark 应用程序相关联。全局临时视图是跨会话的。它的生命周期是 Spark 应用程序的生命周期,即当应用程序终止时它会被自动删除。它与系统保留的数据库 global_temp 相关联,我们必须使用限定名称来引用全局临时视图,例如从 global_temp.view1 中选择。
*
* @throws AnalysisException if the view name is invalid or already exists
*
* @group basic
* @since 2.1.0
*/
@throws[AnalysisException]
def createGlobalTempView(viewName: String): Unit = withPlan {
createTempViewCommand(viewName, replace = false, global = true)
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Spark临时表tempView的注册/使用/注销/注意事项(推荐)
先说一个众人皆知的知识:
Spark中的算子包含transformation算子和action算子,transformation是根据原有RDD创建一个新的RDD,而action则把RDD操作后的结果返回给driver。Spark对transformation的抽象可以大大提高性能,这是因为在Spark中,所有transformation操作都是lazy模式,即Spark不会立即计算结果,而只是简单地记住所有对数据集的转换操作逻辑。这些转换只有遇到action操作的时候才会开始计算。这样的设计使得Spark更加高效。
使用createTempView后,查询这个视图每次都很耗时了,正是因为createTempView操作是lazy模式,在没有action算子触发之前,它并没有什么实质性的运作,仅仅记录了一个创建视图的逻辑。
Spark每次遇到action算子show()方法的时候,才开始真正计算,上面代码中两次用到视图view1,那么意味着创建视图的方法会执行两次,因此非常的耗时,所以需要对view1进行缓存处理。
df.createOrReplaceTempView( tempViewName )
// spark应用程序终止前有效
df.createOrReplaceGlobalTempView( tempViewName )
注销
创建
注销
创建
commonDF.cahe() 或 commonDF.persist(StorageLevel.MEMORY_AND_DISK)commonDF.createOrReplaceTempView( tempViewName )
注销
commonDF.unpersist() [var]源码
createOrReplaceTempView
/*** 使用给定名称创建本地临时视图。此临时视图的生命周期与用于创建此数据集的 SparkSession 相关联。
*
* @group basic
* @since 2.0.0
*/
def createOrReplaceTempView(viewName: String): Unit = withPlan {
createTempViewCommand(viewName, replace = true, global = false)
/**
* 使用给定名称创建一个全局临时视图。此临时视图的生命周期与此 Spark 应用程序相关联。全局临时视图是跨会话的。它的生命周期是 Spark 应用程序的生命周期,即当应用程序终止时它会被自动删除。它与系统保留的数据库 global_temp 相关联,我们必须使用限定名称来引用全局临时视图,例如从 global_temp.view1 中选择。
*
* @throws AnalysisException if the view name is invalid or already exists
*
* @group basic
* @since 2.1.0
*/
@throws[AnalysisException]
def createGlobalTempView(viewName: String): Unit = withPlan {
createTempViewCommand(viewName, replace = false, global = true)
到此这篇关于Spark临时表tempView的注册/使用/注销/注意事项的文章就介绍到这了,更多相关Spark临时表tempView内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Spark临时表tempView的注册/使用/注销/注意事项(推荐)
相关文章
- SpringBoot日志源码解析:日志监听器的注册方法及触发
- 注册境外邮箱有哪些_腾讯会员邮箱登录
- 服务注册与发现之ETCD
- 农药出口美国EPA认证:如何确定农药是否需要注册EPA认证?
- 【Android 高性能音频】Oboe 音频流打开后 耳机 / 音箱 插拔事件处理 ( 动态注册广播接收者监听耳机插拔事件 | 重新打开 Oboe 音频流 )
- 用Spark轻松写入Redis(spark写入redis)
- 管理 Oracle 数据库之注册监听的实战(oracle注册监听)
- 器如何正确注册Oracle监听器(oracle注册监听)
- MySQL注册服务的指南步骤(mysql怎么注册服务)
- C语言开发MySQL用户注册系统(c mysql注册)
- 激发火花,Spark整合Redis(spark整合redis)
- 基于Spark实现Redis数据库查询(spark查询redis)
- 以Spark精准洞悉Redis潜力(spark分析redis)
- MySQL注册失败,解决方法汇总(mysql不能注册)
- 极速前进基于Spark的Redis开发现代化(spark开发redis)
- 利用ajax实现简单的注册验证局部刷新实例