值createGlobalTempView不是apache.org.spark.sql.DataFrame的成员

时间:2016-12-15 20:06:24

标签: apache-spark apache-spark-sql spark-dataframe

我正在尝试使用Spark with Scala中的以下语句将DataFrame注册为全局临时视图:

df.createGlobalTempView("people")

无法识别createGlobalTempView DataFrame对象上的any()

显示错误:

  

值createGlobalTempView不是其成员   org.apache.spark.sql.DataFrame。

我错过了任何库导入吗?

2 个答案:

答案 0 :(得分:1)

createGlobalTempView在当前稳定版本(Spark 2.0)中不存在。它已在2.1.0中添加,尚未发布。

答案 1 :(得分:0)

Global Temporary View

Spark SQL中的临时视图为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不是Spark 2.0.2(最新)版本的一部分。

     

全球临时视图是下一个release

的一部分