我在SO 44011846上找到了这个引用:
与传统临时表不同,临时视图未实现 所有甚至记忆。它对于访问SQL中的数据很有用 明白它的陈述必须在每次评估时进行评估 访问 -
这是否意味着如果Hive是TempView的源,它会一直回到Hive?
我是这么认为的,因此,重复访问的数量是性能方面的问题。
答案 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