日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark-sql createOrReplaceTempView 和createGlobalTempView区别

發布時間:2025/3/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。