在HIVE中创建视图

时间:2016-03-28 23:18:24

标签: hadoop hive hadoop-partitioning

我想在分区的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

1 个答案:

答案 0 :(得分:0)

必须将Hive设置设置为在严格模式下执行作业(Hive 2.x中的默认值)。这可以防止对分区表进行查询,而不会在分区上过滤WHERE子句。

如果需要跨所有分区运行查询(全表扫描),可以将模式设置为     '非严格&#39 ;.小心使用此属性,因为它会触发大量的mapreduce作业。

set hive.mapred.mode=nonstrict; 

如果您不需要进行整个表扫描,则只需在查询的WHERE子句中指定分区值即可。