Wie zum extrahieren von keys, die in einer verschachtelten json-array-Objekt in Presto?
Ich bin mit der neuesten(0.117) Presto und versucht auszuführen CROSS JOIN UNNEST mit komplexen JSON-array wie dieses.
[{"id": 1, "value":"xxx"}, {"id":2, "value":"yy"}, ...]
Zu tun, zuerst habe ich versucht, eine ARRAY mit den Werten von id von
SELECT CAST(JSON_EXTRACT('[{"id": 1, "value":"xxx"}, {"id":2, "value":"yy"}]', '$..id') AS ARRAY<BIGINT>)
aber es funktioniert nicht.
Was ist die beste JSON-Pfad zum extrahieren der Werte der id?
Die folgenden JSONPath auch nicht arbeiten... '$[1,2].id'
InformationsquelleAutor k-kawa | 2015-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie werfen das JSON in ein ARRAY von ANZEIGEN und verwenden
transform
lambda-Funktion zum extrahieren der "id" - Taste:Ausgabe:
lambda
prestodb.io/docs/current/functions/lambda.htmlInformationsquelleAutor Wenlei Xie
Nun können Sie presto-Drittel-Funktionen , Es bieten
json_array_extract
- Funktion können Sie extrahieren von json-array Informationen wie diese:Ausgabe:
Hier ist die readme in Englisch github.com/aaronshan/presto-third-functions/blob/master/...
InformationsquelleAutor aaronshan
Dieser wird Ihr problem lösen. Es ist mehr generic Stimmen, um ein ARRAY von json (weniger anfällig für Fehler gegeben eine beliebige map-Struktur):
Ausgabe in presto:
... Ich lief in eine situation, wo eine Liste mit jsons war verschachtelten json. Meine Liste der jsons hatte eine mehrdeutige nested-map-Struktur. Der folgende code gibt ein array von Werten zu einem bestimmten Schlüssel in einer Liste des jsons.
>
InformationsquelleAutor Attila Dobi
Schließlich gab ich auf der Suche nach einem einfachen JSON-Pfad zu extrahieren.
Stattdessen schrieb ich eine redundante dirty Abfrage wie der folgenden, um die Aufgabe fertig.
Ich noch wissen wollen, die beste übung, wenn Sie wissen ein weiterer guter Weg, um CROSS JOIN!
InformationsquelleAutor k-kawa