如何告诉spark跳过基于范围的分区

olmpazwi  于 2021-07-13  发布在  Spark
关注(0)|答案(0)|浏览(215)

假设我有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 而不是范围。我最好的选择是什么?

暂无答案!

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

相关问题