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

blpfk2vs  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(268)

我将数据存储在orc中的s3分区如下: mydata/year=2017/month=8/day=1 我在spark中创建了一个外部表,位于该表的顶部:

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

这允许我使用sql over spark thrift查询该存储桶中的数据,并且可以运行指定分区的查询,以便更快地返回结果,如下所示:

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

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

  1. cache table mytable

但是,我希望能够部分缓存表,因为我没有足够的内存来缓存所有数据。我有一年的数据,但是,我的大多数查询是针对最后一个月的数据。有没有办法用cache table命令指定要在内存中缓存哪些分区?
我也意识到我可以通过创建一个视图来做到这一点,但是我想知道是否有一种方法可以做到这一点,而不必创建视图:

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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题