有没有办法在Spark内存中部分缓存分区的配置单元表

时间:2017-08-18 20:41:31

标签: apache-spark hive spark-thriftserver

我将数据存储在orc中的s3分区如下:mydata/year=2017/month=8/day=1

我已在此表顶部的spark中创建了一个外部表:

spark.catalog().createExternalTable(tableName, s3Path, "orc");

这允许我使用sql over spark thrift查询该存储桶中的数据,我可以运行指定分区的查询,这样我就可以更快地得到结果:

select count(*) from mytable where day = '1';

我还可以将表缓存在内存中以获得更快的结果:

cache table mytable

但是,我希望能够部分缓存表格,因为我没有足够的内存来缓存所有数据。我有1年的数据,但是我的大多数查询都是针对上个月的数据。有没有办法用cache table命令指定要在内存中缓存的分区?

我也意识到我可以通过创建一个视图来做到这一点,但我想知道是否有办法做到这一点,而不创建一个视图:

CREATE VIEW mytable_thismonth AS SELECT * FROM mytable where month = '8'

0 个答案:

没有答案