Spark Sql registerTempTable和registerDataFrameAsTable的区别

man*_*dar 9 apache-spark apache-spark-sql

Spark SQL中的registerTempTableregisterDataFrameAsTable方法有什么区别 ,哪种情况更好.

zer*_*323 10

Spark> = 2.1

有一个新的createGlobalTempView可用于注册跨会话视图:

它的生命周期是Spark应用程序的生命周期,即它将在应用程序终止时自动删除.它绑定到系统保留的数据库_global_temp,我们必须使用限定名称来引用全局临时视图,例如SELECT * FROM _global_temp.view1.

Spark> = 2.0

registerTempTable如果视图已存在,则已弃用赞成createTempViewcreateOrReplaceTempView使用前一个抛出和异常.

Spark <2.0

PySpark

虽然这两者之间没有实际差异,但执行策略存在差异:

  • SQLContext.registerDataFrameAsTableregisterDataFrameAsTable在JVM SQL上下文中调用方法
  • DataFrame.registerTempTable调用registerTempTableJVM数据框,该框架registerDataFrameAsTable在JVM SQL上下文中调用方法

斯卡拉

  • DataFrame.registerTempTableregisterDataFrameAsTableSQL上下文的调用方法
  • SQLContext.registerDataFrameAsTable是一种无法在org.apache.spark.sql包外访问的私有方法.

为了简单起见,坚持下去也许是一个好主意registerTempTable.