registerTempTable会导致表被缓存吗?

HHH*_*HHH 8 apache-spark apache-spark-sql

我有一个sql语句查询,它在许多字段上执行分组.它使用的表也很大(大小为4TB).我正在将表注册为临时表.但是当我将它注册为临时表时,我不知道表是否被缓存?如果我将查询转换为Scala函数(例如df.groupby().aggr()...)而不是将其作为sql语句,我也不知道它是否更高效.对此有何帮助?

ulr*_*ich 7

到目前为止,Databricks博客最有可能成为最快的SQL

您是否尝试对数据帧进行分区/重新分区以查看它是否提高了性能?

关于registerTempTable:它只在spark上下文中注册表.您可以使用UI进行检查.

val test = List((1,2,3),(4,5,6)).toDF("bla","blb","blc")
test.createOrReplaceTempView("test")
test.show()
Run Code Online (Sandbox Code Playgroud)

存储空白

VS

val test = List((1,2,3),(4,5,6)).toDF("bla","blb","blc")
test.createOrReplaceTempView("test").cache()
test.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

顺便说一句,registerTempTable在Spark 2.0中已被弃用,并已被替换为

createOrReplaceTempView