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

Posted

技术标签:

【中文标题】值 createGlobalTempView 不是 apache.org.spark.sql.DataFrame 的成员【英文标题】:Value createGlobalTempView is not a member of apache.org.spark.sql.DataFrame 【发布时间】:2016-12-15 20:06:24 【问题描述】:

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

df.createGlobalTempView("people")

它无法识别DataFrame 对象上的createGlobalTempView

显示错误:

value createGlobalTempView 不是 org.apache.spark.sql.DataFrame.

我是否缺少任何库导入?

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

Global Temporary View

Spark SQL 中的临时视图是session-scoped,如果创建它的会话终止,它们就会消失。

如果您希望在所有会话之间共享一个临时视图并保持活动状态直到 Spark 应用程序终止,您可以创建一个全局临时视图。全局临时视图绑定到系统保留的数据库 global_temp,我们必须使用限定名称来引用它,例如从 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|
// +----+-------+

全局临时视图不是 Spark 2.0.2(最新)版本的一部分。

全局临时视图是下一个release的一部分

【讨论】:

以上是关于值 createGlobalTempView 不是 apache.org.spark.sql.DataFrame 的成员的主要内容,如果未能解决你的问题,请参考以下文章

C是不是具有可以测试值是不是在预期值的公差范围内的功能,如果不是,我该如何创建?

在 PostgreSQL 函数中,是不是可以检查列值是不是与给定参数值匹配?

MySQL语句中判断(字段值是不是为0)不是的话...

检查值元组是不是为默认值

如何获得十六进制颜色值而不是 RGB 值?

函数给出布尔值而不是值,isset()