【发布时间】:2016-08-31 22:18:33
【问题描述】:
如果我跑
set hivevar:a = 1;
select * from t1 where partition_variable=${a};
Hive 仅从适当的分区中提取记录。 或者,如果我运行
set hivevar:b = 6;
set hivevar:c = 5;
set hivevar:a = ${b}-${c};
select * from t1 where partition_variable=${a};
partition_variable 上的条件被视为谓词而不是分区,并且 hive 会遍历表中的所有记录。
这显然是一个人为的例子,但在我的特定用例中是必要的。是否有强制 hive 使用它进行分区?
提前致谢。
【问题讨论】: