【发布时间】:2017-05-09 04:03:14
【问题描述】:
我试图了解 WHERE 子句是在配置单元中的 LATERAL VIEW EXPLODE 之后还是之前运行。
例如,如果我有
SELECT *
FROM
(
SELECT
a1,
a2,
b.ds,
conv_list.threshold_conv[0]
AS t
FROM
t1 b
LATERAL VIEW EXPLODE({list})
conv_list as threshold_conv
WHERE
b.ds between '{DATE-29}' and '{DATE}'
)
ds过滤器会在横向视图爆炸之前还是之后运行?
【问题讨论】:
-
为什么重要?
-
您可以使用解释命令并获取详细信息。但根据我的理解 LATERAL VIEW EXPLODE 将首先完成,然后在哪里......
-
@sandeeprawat - 所以你假设如果过滤例如在分区列上,整个表将被扫描,行将被分解,然后过滤才会发生?
-
是的..应该是这样的..
-
@sandeeprawat 这不会破坏分区的全部目的吗?
标签: hadoop hive hiveql hadoop2