Apache spark SPARK TempView性能
我在SO 44011846上找到了这句话: 与传统的temp表不同,temp视图不是在 这一切都让我记忆犹新。它对于访问SQL中的数据很有用,但是 理解每次运行时都必须对其语句进行评估 访问- 这是否意味着如果Hive是TempView的源,它将一直返回到Hive 我认为是的,因此,大量重复访问是性能方面的一个问题 火花1.6 临时表/视图未存储在内存中。它们仅对从hive/rdbms访问数据有用 如果您使用的是蜂箱-Apache spark SPARK TempView性能,apache-spark,Apache Spark,我在SO 44011846上找到了这句话: 与传统的temp表不同,temp视图不是在 这一切都让我记忆犹新。它对于访问SQL中的数据很有用,但是 理解每次运行时都必须对其语句进行评估 访问- 这是否意味着如果Hive是TempView的源,它将一直返回到Hive 我认为是的,因此,大量重复访问是性能方面的一个问题 火花1.6 临时表/视图未存储在内存中。它们仅对从hive/rdbms访问数据有用 如果您使用的是蜂箱- hiveContext.select("select * from tabl
hiveContext.select("select * from tableA").registerTempTable("tableA")
上面的语句只注册临时表。这就是转变。当执行任何操作时,它会在配置单元上执行sql并创建临时表。每当执行任何操作时,它都将执行
如果要在内存中缓存该表,则必须使用下面的语句-
hiveContext.cacheTable("tableA")
这是懒惰的评价。无论何时执行任何操作,它都将执行sql并将临时表保存在内存中。下次,在inmemory表上执行操作。不会每次都对其进行评估
Spark2.0
RegisterTempable替换为createOrReplaceTempView是,如果要多次访问数据,请使用
cache()
。@Shaido但是每次调用将缓存什么?每个调用都可以查看诱惑的不同方面,实际上是一个不同的语句。在这些情况下,可以使用cacheTable
函数。我相信缓存的是整个表,请看这个问题: