Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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优化缓存_Apache Spark_Parquet - Fatal编程技术网

Apache spark 通过spark优化缓存

Apache spark 通过spark优化缓存,apache-spark,parquet,Apache Spark,Parquet,我正在开发一个解决方案,使用spark提供低延迟结果。为此,我计划预先缓存用户想要查询的数据 我能够在查询中获得良好的性能。我注意到的一点是,集群上的数据(拼花格式)在缓存时会爆炸。我理解这是由于反序列化和解码数据。我只是想知道是否还有其他方法可以减少内存占用 我试着用 sqlContext.cacheTable("table_name") and also tbl.persist(StorageLevel.MEMORY_AND_DISK_SER) 但是没有什么能帮助减少内存占用也许你想试试

我正在开发一个解决方案,使用spark提供低延迟结果。为此,我计划预先缓存用户想要查询的数据

我能够在查询中获得良好的性能。我注意到的一点是,集群上的数据(拼花格式)在缓存时会爆炸。我理解这是由于反序列化和解码数据。我只是想知道是否还有其他方法可以减少内存占用

我试着用

sqlContext.cacheTable("table_name")  and also
tbl.persist(StorageLevel.MEMORY_AND_DISK_SER)

但是没有什么能帮助减少内存占用

也许你想试试orc?最近,orc的支持有所改善(更多信息:)。我不是专家,但我听说兽人使用内存列格式。。。这种格式提供了通过重复值的运行长度编码等技术进行压缩的机会,这往往会降低内存占用。

当不缓存时,它也会爆炸

缓存与减少内存占用无关。您没有说明RDD或DF,但我认为是后者。这为RDD和DFs/DSs的改进提供了思路:


不能为不同的用户重复使用数据。你可以考虑的是Apache点燃。请参见

此缓存数据对于用户来说不是永久性的。查询…它在spark上下文中是时间/内存限制的。。为什么你不能考虑其他的选择,比如MEM SQL或MyCAMP或基于Peritri on的蜂巢查询,知道它不是永久性的。我们希望用户在同一个数据集上运行一些查询,因此希望缓存数据,直到用户出现为止。我们确实希望探索其他选项,但目前我们将使用spark实现低延迟。