我想在分区的hive表上创建一个视图。我的观点定义如下:
create view schema.V1 as select t1.* from scehma.tab1 as t1 inner join (select record_key ,max(last_update) as last_update from scehma.tab1 group by record_key) as t2 on t1.record_key=t2.record_key and t1.last_update=t2.last_update
我的tab1表在quarter_id上分区。
当我在视图上运行任何查询时,它会给出错误:
FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "V1:t2:tab1" Table "tab1"
此致 Jayanta Layak
答案 0 :(得分:0)
必须将Hive设置设置为在严格模式下执行作业(Hive 2.x中的默认值)。这可以防止对分区表进行查询,而不会在分区上过滤WHERE子句。
如果需要跨所有分区运行查询(全表扫描),可以将模式设置为 '非严格&#39 ;.小心使用此属性,因为它会触发大量的mapreduce作业。
set hive.mapred.mode=nonstrict;
如果您不需要进行整个表扫描,则只需在查询的WHERE子句中指定分区值即可。