【问题标题】:Value createGlobalTempView is not a member of apache.org.spark.sql.DataFrame值 createGlobalTempView 不是 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.

我是否缺少任何库导入?

【问题讨论】:

    标签: apache-spark apache-spark-sql spark-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的一部分

      【讨论】:

        猜你喜欢
        • 2017-11-19
        • 2020-07-17
        • 2017-01-05
        • 2013-10-17
        • 2016-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多