根据其他列修剪分区

时间:2018-11-02 12:24:57

标签: apache-spark pyspark apache-spark-sql

让我们考虑蜂巢上的一个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索引?

0 个答案:

没有答案