让我们考虑蜂巢上的一个orc表,该表在dt_month
列上有一个分区,它包含一个月中的某天(txn_dt
)的所有行。
当我像下面这样直接在dt_month
上引入where子句时,分区修剪将起作用。
df = spark.table("table")
df.where("dt_month = '2018-01-01'")
但是我有可能在对txn_dt
(这是dt_month
的列)进行过滤的同时,在分区级别和修剪分区上收集统计信息,因为存在一些传递属性坚持分区列?
df = spark.table("table")
df.where("txn_dt = '2018-01-01'")
我们能否使此查询不遍历整个表并依靠orc索引,而仅依靠2018-01-01
分区,然后使用orc索引?