值 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是不是具有可以测试值是不是在预期值的公差范围内的功能,如果不是,我该如何创建?