2 votes

Portage de requêtes vers Impala

J'essaie de comprendre le petit extrait de Query qui doit être adapté par Impala.

Select
.
.

from ${ENV_PREFIX}private_datalap_storage_customer_v1 cus
lateral view explode(adresses) address as addr
where year = substr(${REF_DATE}, 1, 4)
and month = substr(${REF_DATE}, 5, 2)

Quelqu'un peut-il m'aider à comprendre ce qui se passe dans from et Where ?

J'apprécierais également que quelqu'un m'explique pourquoi j'ai l'erreur suivante lorsque j'essaie d'exécuter la requête sur Impala.

ParseException ligne 35:20 cannot recognize input near ',' ''1'' ',' in spécification de la fonction

0voto

leftjoin Points 6979

Substr() reçoit une chaîne de caractères, la position de départ et la longueur en caractères à extraire de la position de départ. substr('2021-02-20', 1, 4) doit extraire 2021 .

Très probablement, la variable n'est pas résolue et vous obtenez substr(, 1, 4) au lieu de, par exemple substr('2021-02-20', 1, 4) Dans Impala, variables sont sous cette forme ${var:var_name} vérifiez comment vous le passez et comment il est résolu en utilisant select '${var:var_name}'

De plus, je ne sais pas comment vous passez les variables dans Hive mais les chaînes littérales doivent être citées, si la variable elle-même ne contient pas de guillemets, ceci substr(${REF_DATE}, 1, 4) est résolu comme substr(2021-02-20, 1, 4) ce qui est faux, donc vérifiez à nouveau si vous avez besoin de mettre ${REF_DATE} entre guillemets ou il contient déjà des guillemets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X