Sign up to take part
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
Bonjour,
J'ai constaté un bug récurrent lors de jointures entre datasets qui utilisent des valeurs dont le résultat peut être vide (null ou blank value). Le job va être exécuté correctement en OK mais l'output ne va pas correspondre au résultat attendu car les lignes avec la clé null seront automatiquement supprimées sans warning....
Idem dans les pré/post computing join , si je fais l'erreur de mal caster le champs calculé (formula en string au lieu de double par exemple), le job va s'exécuter en OK mais dataset de sortie vide, sans warning sur l'erreur de cast.
Quelqu'un a y-il déjà observé cette erreur ? (je l'avais avec la version 5, mais je constate la même chose avec la V8.0.2),
Merci par avance,
Tuong-Vi
Bonjour,
Le standard SQL considère que null n'est égale à aucune autre valeur car considérée comme valeur inconnue. De fait `null = null` est considéré comme faux et les lignes concernées ne sont pas sélectionnées lors d'un join.
Le plus simple est donc, comme il a été mentionné, de remplacer les valeurs null par une valeur "neutre" comme "N/A" ou "Empty".
Vous trouverez une discussion plus complète sur le sujet ici (en anglais).
Bonjour,
Même problème de mon côté. 2 solutions alternatives trouvées:
-faire un prepare avant le join qui remplace les cellules vides par un "VIDE" dans toutes les tables en entrée
-faire dans le join en "pre-computed column" un concat de toutes les colonnes qui forme ainsi une chaine de caractères comprenant les clés null
Existe t-il d'autres solutions, plus "propres" ?
Merci
Bonjour,
Effectivement à part le prepare recipie en amont ou créer des champs calculés, je n'ai pas d'autres solutions en visuel. En coding, un spark sql ou python peut résoudre le problème facilement en une étape mais... c'est du script. Ce point sur les types m'a l'air propre au join recipie car j'ai le même problème de chargement de données si je me trompe de type sur un pré/post computed column :
Je n'aurai aucun warning pendant le run mais en output une table vide....
Bonjour,
Le standard SQL considère que null n'est égale à aucune autre valeur car considérée comme valeur inconnue. De fait `null = null` est considéré comme faux et les lignes concernées ne sont pas sélectionnées lors d'un join.
Le plus simple est donc, comme il a été mentionné, de remplacer les valeurs null par une valeur "neutre" comme "N/A" ou "Empty".
Vous trouverez une discussion plus complète sur le sujet ici (en anglais).