2017-08-22 1 views
0

In Amazon Athena,Amazon Athena wählen gesamte JSON Reihe

ich eine Datendatei in Form einer JSON auf eine Zeile haben

{ a: 1, b: 2 } 
{ a: 2, b: 4 } 
{ a: 3, b: 6 } 

ist es möglich, die Ausgabe ganze Reihe von Daten, während der Tisch erstellt mit nur Feld a?

SELECT ??? FROM table1 WHERE a > 1; 

Ausgabe

{ a: 2, b: 4 } 
{ a: 3, b: 6 } 

Dank

Antwort

0

Ja, wenn Ihre Spalte ein JSON ist, dann können Sie es in Athena extrahieren, wie so:

SELECT * 
FROM my_table 
WHERE cast(json_extract_scalar(column_name, 
     '$.a') as integer) > 1; 
0

Es gibt Funktion concat (Stich, String, ...) in hive, die verwendet werden können, aber ich bezweifle, Athena UDF unterstützt.

Beispielcode

SELECT concat('{ a: ' , cast(a as string),', b:' ,cast(a as string), ' }')FROM table1 WHERE a > 1; 

Update nach Kommentar

Falls Sie tabellarisch begrenzte Spalte erstellen Ansicht auf der Basistabelle erstellen müssen.

+0

Danke für die Antwort. Meine Json-Datenzeile hat jedoch hundert Attribute. Es gibt zu viele Felder und ich wähle einige aus, um den Tisch zu erstellen. Ich benutze dieses Feld zum Filtern. In einigen Fällen jedoch. Ich würde die ganze Reihe von Daten bekommen. – kkpoon

+0

In diesem Fall erstellen Sie die Ansicht oben auf der Basistabelle. –

Verwandte Themen