我将数据存储在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
但是,我希望能够部分缓存表,因为我没有足够的内存来缓存所有数据。我有一年的数据,但是,我的大多数查询是针对最后一个月的数据。有没有办法用cache table命令指定要在内存中缓存哪些分区?
我也意识到我可以通过创建一个视图来做到这一点,但是我想知道是否有一种方法可以做到这一点,而不必创建视图:
CREATE VIEW mytable_thismonth AS SELECT * FROM mytable where month = '8'
暂无答案!
目前还没有任何答案,快来回答吧!