假设我有100个文件存储在s3中,属于一个我想用sparksql查询的表。假设table上有 timestamp
列和其他一些列。时间戳是单调递增的,因此每个分区中的时间戳是有序的,并且小于所有后续分区中的所有时间戳。
我现在想对这些文件进行一个查询,其中我有一个 predicate timestamp between t1 and t2
或者 timestamp > t1
哪里 t1
可能是这100个分区中间的时间戳。据我所知,spark目前无法确定时间戳在我的分区中是有序的,必须检查所有100个分区中的每一行并查看其时间戳。
我的问题是:怎样才能教spark更聪明,跳过整个分区?例如,如果 t1
在这100个分区中,我如何教spark跳过前50个分区?
我知道分区发现https://spark.apache.org/docs/latest/sql-data-sources-parquet.html#partition-但是从我所知道的来看,这只适用于“分类”分区,比如 gender=male
而不是范围。我最好的选择是什么?
暂无答案!
目前还没有任何答案,快来回答吧!