我有一个用例,我们需要将开放源代码的delta表流化到多个查询中,在其中一个分区列上进行过滤。如,。给定按年份列分区的增量表。
Streaming query 1
spark.readStream.format("delta").load("/tmp/delta-table/").
where("year= 2013")
Streaming query 2
spark.readStream.format("delta").load("/tmp/delta-table/").
where("year= 2014")
流式传输后,物理计划显示过滤器。
> == Physical Plan == Filter (isnotnull(year#431) AND (year#431 = 2013))
> +- StreamingRelation delta, []
我的问题是pushdown predicate 是否适用于delta中的流式查询?我们能从delta流式传输特定的分区吗?
1条答案
按热度按时间plupiseo1#
如果列已经分区,则只扫描所需的分区。
让我们创建分区和非分区增量表并执行结构化流。
分区增量表流:
上述流式查询的物理计划:请注意partitionfilters
非分区增量表流:
上述流式查询的物理计划:请注意pushedfilters