Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark SPARK TempView性能_Apache Spark - Fatal编程技术网

Apache spark SPARK TempView性能

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

我在SO 44011846上找到了这句话:

与传统的temp表不同,temp视图不是在 这一切都让我记忆犹新。它对于访问SQL中的数据很有用,但是 理解每次运行时都必须对其语句进行评估 访问-

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

我认为是的,因此,大量重复访问是性能方面的一个问题

火花1.6

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

如果您使用的是蜂箱-

hiveContext.select("select * from tableA").registerTempTable("tableA")
上面的语句只注册临时表。这就是转变。当执行任何操作时,它会在配置单元上执行sql并创建临时表。每当执行任何操作时,它都将执行

如果要在内存中缓存该表,则必须使用下面的语句-

 hiveContext.cacheTable("tableA")
这是懒惰的评价。无论何时执行任何操作,它都将执行sql并将临时表保存在内存中。下次,在inmemory表上执行操作。不会每次都对其进行评估

Spark2.0


RegisterTempable替换为createOrReplaceTempView

是,如果要多次访问数据,请使用
cache()
。@Shaido但是每次调用将缓存什么?每个调用都可以查看诱惑的不同方面,实际上是一个不同的语句。在这些情况下,可以使用
cacheTable
函数。我相信缓存的是整个表,请看这个问题: