Comment permettre à la ruche.mapred.mode=nonstrict?

Je suis en train d'exécuter cette requête, avec un JOIN sans ON propriété.

Je suis l'exécution de la requête comme:

hive -v -f  my_file.hql

J'ai eu ce message:

En mode strict, produit cartésien n'est pas autorisé. Si vous voulez vraiment
pour effectuer l'opération, l'ensemble de la ruche.mapred.mode=nonstrict

- Je mettre à jour le hql fichier:

set hive.mapred.mode=nonstrict sur le dessus de cela.

Mais ensuite, j'ai eu ce message:

ENSEMBLE de la ruche.mapred.mode=nonstrict Requête a retourné non nulle code: 1, cause:
Impossible de modifier la ruche.mapred.mode lors de l'exécution. C'est dans le listof
les paramètres qui ne peuvent pas être modifiées lors de l'exécution

Comment je peux résoudre ce problème?

ps: je veux faire cette cartesian product.

Comment je fais pour y arriver? Où je peux mettre cette variable hive.mapred.mode fonctionne ?

  • avez-vous essayé de la mettre hive-site.xml?
  • Je n'ai pas accès à la hive-site.xml (à l'aide d'un cluster partagé) @spijs
  • Avez-vous une bonne raison pourquoi vous ne voulez pas utiliser ON? Apparemment, la Ruche ne peut pas optimiser la conversion d'une clause where pour un ON.
  • Je suis juste en utilisant une autre table qui n'est pas nécessairement correspondre parfaitement les uns avec les autres, c'est pourquoi ne fait pas de sens pour moi, dans ce cas, utilisez la SUR sur elle. @spijs
  • Avez-vous essayé de le mettre dans la Ruche shell interactif? Si cela n'est pas possible, il est probable que ce doit être définie avant d'allumer la ruche-serveur, ce qui signifie que vous ne pouvez probablement pas comprendre cela sans contacter votre administrateur de cluster.
  • Ce que vous pouvez essayer est bien pour ajouter une colonne à deux tables, qui a toujours pour exemple la valeur 1. Si vous puis de faire une jointure sur ces valeurs, vous obtenez le produit cartésien si je ne me trompe pas.

InformationsquelleAutor Alvaro Joao | 2017-02-15