最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spark臨時表tempView的注冊/使用/注銷/注意事項(推薦)

 更新時間:2022年10月18日 09:12:21   作者:南風(fēng)知我意丿  
transformation是根據(jù)原有RDD創(chuàng)建一個新的RDD,而action則把RDD操作后的結(jié)果返回給driver,這篇文章主要介紹了Spark臨時表tempView的注冊/使用/注銷/注意事項的相關(guān)資料,需要的朋友可以參考下

createTempView運作原理

先說一個眾人皆知的知識:
Spark中的算子包含transformation算子和action算子,transformation是根據(jù)原有RDD創(chuàng)建一個新的RDD,而action則把RDD操作后的結(jié)果返回給driver。Spark對transformation的抽象可以大大提高性能,這是因為在Spark中,所有transformation操作都是lazy模式,即Spark不會立即計算結(jié)果,而只是簡單地記住所有對數(shù)據(jù)集的轉(zhuǎn)換操作邏輯。這些轉(zhuǎn)換只有遇到action操作的時候才會開始計算。這樣的設(shè)計使得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算子觸發(fā)之前,它并沒有什么實質(zhì)性的運作,僅僅記錄了一個創(chuàng)建視圖的邏輯
Spark每次遇到action算子show()方法的時候,才開始真正計算,上面代碼中兩次用到視圖view1,那么意味著創(chuàng)建視圖的方法會執(zhí)行兩次,因此非常的耗時,所以需要對view1進(jìn)行緩存處理。

緩存臨時表方式:

方式1 創(chuàng)建

// 創(chuàng)建它的SparkSession對象終止前有效
df.createOrReplaceTempView("tempViewName")  
// spark應(yīng)用程序終止前有效
df.createOrReplaceGlobalTempView("tempViewName") 

注銷

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

方式2

創(chuàng)建

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

注銷

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

方式3

創(chuàng)建

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

注銷

commonDF.unpersist()

臨時表生命周期

源碼

createOrReplaceTempView

  /**
   * 使用給定名稱創(chuàng)建本地臨時視圖。此臨時視圖的生命周期與用于創(chuàng)建此數(shù)據(jù)集的 SparkSession 相關(guān)聯(lián)。
   *
   * @group basic
   * @since 2.0.0
   */
  def createOrReplaceTempView(viewName: String): Unit = withPlan {
    createTempViewCommand(viewName, replace = true, global = false)
  }

也就是說,當(dāng)一下代碼中spark stop(),之后 創(chuàng)建的臨時視圖表才失效

createGlobalTempView

/**
   * 使用給定名稱創(chuàng)建一個全局臨時視圖。此臨時視圖的生命周期與此 Spark 應(yīng)用程序相關(guān)聯(lián)。全局臨時視圖是跨會話的。它的生命周期是 Spark 應(yīng)用程序的生命周期,即當(dāng)應(yīng)用程序終止時它會被自動刪除。它與系統(tǒng)保留的數(shù)據(jù)庫 global_temp 相關(guān)聯(lián),我們必須使用限定名稱來引用全局臨時視圖,例如從 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)
  }

到此這篇關(guān)于Spark臨時表tempView的注冊/使用/注銷/注意事項的文章就介紹到這了,更多相關(guān)Spark臨時表tempView內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL Server的Descending Indexes降序索引實例展示

    SQL Server的Descending Indexes降序索引實例展示

    在涉及多字段排序的復(fù)雜查詢中,合理使用降序索引可以顯著提升SQLServer的查詢效率,本文通過構(gòu)建實際的查詢案例,展示了如何在SQLServer中建立并利用降序索引優(yōu)化查詢性能,感興趣的朋友一起看看吧
    2024-09-09
  • 通過格式良好的SQL提高效率和準(zhǔn)確性

    通過格式良好的SQL提高效率和準(zhǔn)確性

    在本文中,作者將分享如何通過格式良好的SQL語句提升生產(chǎn)率,感興趣的小伙伴們可以參考一下
    2015-08-08
  • SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫文件收縮不會影響性能

    SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫文件收縮不會影響性能

    收縮文件的過程非常影響性能,這個過程需要移動大量數(shù)據(jù)從而造成大量IO,這個過程會被記錄到日志從而造成日志暴漲,相應(yīng)的,還會占去大量的CPU資源
    2013-01-01
  • sqlserver 動態(tài)創(chuàng)建臨時表的語句分享

    sqlserver 動態(tài)創(chuàng)建臨時表的語句分享

    開發(fā)業(yè)務(wù)需求,需要對一個表作數(shù)據(jù)分析,由于數(shù)據(jù)量較大,而且分析時字段會隨條件相應(yīng)變化而變化
    2012-01-01
  • SQL中varchar和nvarchar的基本介紹及其區(qū)別

    SQL中varchar和nvarchar的基本介紹及其區(qū)別

    varchar長度為 n 個字節(jié)的可變長度且非 Unicode 的字符數(shù)據(jù),nvarchar包含 n 個字符的可變長度 Unicode 字符數(shù)據(jù)
    2014-07-07
  • SQL?Povit函數(shù)使用及實例詳解

    SQL?Povit函數(shù)使用及實例詳解

    PIVOT函數(shù)常用于數(shù)據(jù)的行轉(zhuǎn)列,同時也可以用此函數(shù)實現(xiàn)類似于Excel中的數(shù)據(jù)透視表的效果,這篇文章主要介紹了SQL?Povit函數(shù)使用及實例,需要的朋友可以參考下
    2024-07-07
  • SQL Server的死鎖說明

    SQL Server的死鎖說明

    死鎖是導(dǎo)致數(shù)據(jù)庫中的競爭性并發(fā)鎖,通常在多步驟事務(wù)中。當(dāng)兩個或多個任務(wù)永久相互阻止時,每個任務(wù)都鎖定了其他任務(wù)嘗試鎖定的資源,就會發(fā)生死鎖。本文主要介紹了SQL Server的死鎖,感興趣的朋友可以參考閱讀
    2023-04-04
  • sqlserver中如何查詢出連續(xù)日期記錄的代碼

    sqlserver中如何查詢出連續(xù)日期記錄的代碼

    Insus.NET嘗試寫了程序并做了測試,可以得到預(yù)期的結(jié)果,SQL代碼可參考和學(xué)習(xí)之用。
    2011-09-09
  • Sql 語句學(xué)習(xí)指南

    Sql 語句學(xué)習(xí)指南

    為了大家更容易理解我舉出的SQL語句,本文假定已經(jīng)建立了一個學(xué)生成績管理數(shù)據(jù)庫,全文均以學(xué)生成績的管理為例來描述。
    2008-12-12
  • SQL Server 復(fù)制需要有實際的服務(wù)器名稱才能連接到服務(wù)器

    SQL Server 復(fù)制需要有實際的服務(wù)器名稱才能連接到服務(wù)器

    今天在做sql Server 2005的實驗的時候碰到的問題,問題描述很清楚,懷疑是我以前給計算機(jī)修改了名稱而導(dǎo)致的.可以用select @@servername和select serverproperty ('servername')對照一下,兩個的結(jié)果是否一樣
    2012-06-06

最新評論

盖州市| 阆中市| 潼南县| 兰溪市| 应城市| 蓬安县| 中方县| 庆云县| 铜鼓县| 华池县| 望城县| 浠水县| 安平县| 九龙县| 上杭县| 丰宁| 华亭县| 资兴市| 肇东市| 天台县| 禄丰县| 武川县| 龙陵县| 鱼台县| 云林县| 克东县| 舞阳县| 晋州市| 灯塔市| 上栗县| 华容县| 莎车县| 伊宁县| 五寨县| 衡南县| 永清县| 临城县| 和顺县| 大宁县| 青龙| 吉木萨尔县|