你好,
當創建一個火花視圖使用SparkSQL(“創建視圖作為SELCT…”)違約,這種觀點non-temporary——視圖定義將生存火花會話集群以及火花。
在PySpark我可以使用DataFrame。createOrReplaceTempView或DataFrame.createOrReplaceGlobalTempView創建一個臨時DataFrame視圖。
有沒有一種方法來創建一個non-temporary視圖與火花PySparkDataFrame編程嗎?
火花。sql(“創建視圖SELCT…”)不算
我沒有找到一個DataFrame方法這樣做……
現在我終於明白了所以問題是選擇通過PySpark API創建創建視圖。
我們可以看到,在dataframe.pythat所有視圖都臨時:
這個PySpark API是路由Dataset.scala:
在Dataset.scala我們可以看到應該rebuild-ed條件。它是不允許PersistedView
val viewType =如果其他(全球)GlobalTempView LocalTempView
應該是類似的SparkSqlParser.scala
如果(ctx val viewType =。其他臨時= = null) {PersistedView}如果(ctx)。其他全球! = null) {GlobalTempView} {LocalTempView}
所以:
1)
私人def createTempViewCommandDataset.scala需要額外viewType參數而應該重命名(已經添加了名稱是錯誤的,因全球)
2)比的函數,如createGlobalPersistantCommand等它被添加Dataset.scala
3)比德fcreateGlobalPersistantView等可以被添加到dataframe.py
在火花後X (?:-)這將是可能的。
也許有人想貢獻並創建提交
嗨@Jose岡薩雷斯,
我認為,有三種觀點:
我想創建一個non-temporary視圖(isTemporary = false)——不是SparkSQL而是PySpark。