ARRAY_CONTAINS muliple-Werte im hive
Ist es ein bequemer Weg, um die ARRAY_CONTAINS Funktion im Bienenstock zu suchen, die für mehrere Einträge in ein array, Spalte, anstatt nur eine? Also anstatt:
WHERE ARRAY_CONTAINS(array, val1) OR ARRAY_CONTAINS(array, val2)
Möchte ich schreiben:
WHERE ARRAY_CONTAINS(array, val1, val2)
Den vollständigen problem ist, dass ich Lesen müssen val1
und val2
dynamisch von der Befehl Linie Argumente, wenn ich das Skript ausführen und ich in der Regel nicht wissen, wie viele Werte konditioniert werden. So können Sie denken vals
wird eine Komma-separierte Liste (oder array) mit Werten val1
, val2
, ...
, und ich will schreiben
WHERE ARRAY_CONTAINS(array, vals)
Vielen Dank im Voraus!
InformationsquelleAutor dynamo | 2014-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine UDF hier , lassen Sie die Schnittmenge zweier arrays. Vorausgesetzt, Ihre Werte mit der Struktur
Könnten Sie dann tun
Wenn Sie keine Elemente gemeinsam,
[]
zurückgegeben werden und daher[][0]
wirdnull
Ya ich denke, dies ist Ihre beste Wette.
InformationsquelleAutor gobrewers14
select *
aus der Tabelle
seitliche Ansicht explodieren(array) als arr
wo arr (vals)
;
InformationsquelleAutor liz