SPARK TempView性能

时间:2018-06-06 09:25:25

标签: apache-spark

我在SO 44011846上找到了这个引用:

  

与传统临时表不同,临时视图未实现   所有甚至记忆。它对于访问SQL中的数据很有用   明白它的陈述必须在每次评估时进行评估   访问 -

这是否意味着如果Hive是TempView的源,它会一直回到Hive?

我是这么认为的,因此,重复访问的数量是性能方面的问题。

1 个答案:

答案 0 :(得分:0)

  

Spark 1.6

临时表/视图未存储在内存中。它们仅对从hive / rdbms访问数据有用。

如果您使用的是Hive -

hiveContext.select("select * from tableA").registerTempTable("tableA")

上面的语句只注册临时表。这是转型。执行任何操作时,它会在hive上执行sql并创建临时表。无论何时执行任何操作,它都会执行。

如果要将表缓存在内存中,则必须使用以下语句 -

 hiveContext.cacheTable("tableA")

这是懒惰的评价。无论何时执行任何操作,它都将执行sql并将临时表保存在内存中。下次,在内存表上执行操作。它不会每次评估。

  

Spark2.0

registerTempTable替换为createOrReplaceTempView