2016-12-15 16 views
2
成員

我試圖註冊數據框用低於語句星火Scala的全局臨時視圖:值createGlobalTempView不apache.org.spark.sql.DataFrame

df.createGlobalTempView("people") 

這是不不識別DataFrame對象上的createGlobalTempView

它顯示錯誤:

value createGlobalTempView is not a member of org.apache.spark.sql.DataFrame.

我失去了任何庫進口?

回答

1

createGlobalTempView不存在於當前的穩定版本(Spark 2.0)中。它已被添加到尚未發佈的2.1.0中。在星火SQL

0

Global Temporary View

臨時觀點session-scoped如果創建它的會話終止就會消失。

如果您希望臨時視圖在所有會話之間共享並保持活動狀態,直到Spark應用程序終止,您可以創建一個全局臨時視圖。全局臨時視圖與系統保存的數據庫global_temp綁定,我們必須使用限定名稱來引用它,例如, SELECT * FROM global_temp.view1。

// Register the DataFrame as a global temporary view 
df.createGlobalTempView("people") 

// Global temporary view is tied to a system preserved database `global_temp` 
spark.sql("SELECT * FROM global_temp.people").show() 
// +----+-------+ 
// | age| name| 
// +----+-------+ 
// |null|Michael| 
// | 30| Andy| 
// | 19| Justin| 
// +----+-------+ 

// Global temporary view is cross-session 
spark.newSession().sql("SELECT * FROM global_temp.people").show() 
// +----+-------+ 
// | age| name| 
// +----+-------+ 
// |null|Michael| 
// | 30| Andy| 
// | 19| Justin| 
// +----+-------+ 

Global Temporary View is not part of Spark 2.0.2 (latest) version.

Global Temporary View is part of next release