2016-03-28 4 views
1

Je souhaite créer une vue sur une table ruche partitionnée. Ma définition de la vue est comme ci-dessous:Création d'une vue dans 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 

Ma table de tab1 est divisée sur quarter_id.

Quand je lance une requête sur la vue, il donne l'erreur:

FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "V1:t2:tab1" Table "tab1" 

Cordialement Jayanta Layak

Répondre

0

Vos paramètres Hive doivent être configurés pour exécuter des tâches en mode strict (par défaut dans Ruche 2.x). Cela empêche les requêtes de tables partitionnées sans clause WHERE qui filtre sur les partitions.

Si vous devez exécuter une requête sur toutes les partitions (analyse complète de la table), vous pouvez définir le mode sur 'nonstrict'. Utilisez cette propriété avec précaution car elle déclenche d'énormes travaux mapreduce.

set hive.mapred.mode=nonstrict; 

Si vous n'avez pas besoin d'une analyse de table entière, vous pouvez simplement spécifier la valeur de la partition dans la clause WHERE de votre requête.

+0

Merci pour la réponse. Je le sais déjà. Ma question est comment pouvons-nous créer des vues sur une table partitionnée? –