Hive wählen Sie Spalten zu tun, eine case-Anweisung auf
Dadurch wird der export der Daten aus dynamodb dynamisch zu s3.
-- Load S3 Table with data from DynamoDB
INSERT OVERWRITE TABLE s3_table SELECT * FROM dynamodb_table;
Das problem ist, dass es Blätter in einem Haufen von \N
. Kann ich schreiben Sie von hand, wird es so Aussehen
-- Load S3 Table with data from DynamoDB
INSERT OVERWRITE TABLE s3_table SELECT DCS_ID, CASE WHEN MAKE IS NULL THEN "" ELSE MAKE END, CASE WHEN MODEL IS NULL THEN "" ELSE MODEL END FROM dynamodb_table;
Das problem ist die Auswahl der Spalten, zu sagen: "Wenn Spalte NULL ist, Dann "" Sonst Spalte Ende"
Die aktuelle Ausgabe sieht so aus
PORTAL 1.5.1.25.2 2013-08-09 13:45:20.126 2013-08-09 13:45:20.282 \N \N \N \N \N \N
Die gewünschte Ausgabe wie folgt aussieht
PORTAL 1.5.1.25.2 2013-08-13 18:18:24.667 2013-08-13 18:18:24.832
Was meinst du mit "Blättern in einer Reihe von neuen Linien"?
Ich habe den Ausgang bin ich immer aktuell und die Ausgabe die ich bekomme, wenn ich es von hand
Oh, es ist buchstäblich verlassen diese
Es ist in Ordnung, ich hätte das gleiche getan, wenn ich Sie war. Ich glaube, es bedeutet, dass für jede Spalte, die keinen Wert in es.
eine Idee, wie man wählen Sie die Spalte, in der diese Anweisung INSERT OVERWRITE TABLE s3_table SELECT * FROM dynamodb_table;
Ich habe den Ausgang bin ich immer aktuell und die Ausgabe die ich bekomme, wenn ich es von hand
Oh, es ist buchstäblich verlassen diese
\N
. Komisch. Sorry für die Bearbeitung, falsch. Jetzt verstehe ich das ProblemEs ist in Ordnung, ich hätte das gleiche getan, wenn ich Sie war. Ich glaube, es bedeutet, dass für jede Spalte, die keinen Wert in es.
eine Idee, wie man wählen Sie die Spalte, in der diese Anweisung INSERT OVERWRITE TABLE s3_table SELECT * FROM dynamodb_table;
InformationsquelleAutor Tall Paul | 2013-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den hive-Ausgabe enthält den string "\N" für null-Werte (zu unterscheiden von einem Leerzeichen), also entweder Sie haben zu bereiten jede Spalte, oder der Prozess der Ausgabe danach (könnte ein stream-job, wenn große Mengen von Daten.)
Verwende ich oft die
coalesce
Funktion:coalesce
nimmt mehrere Argumente und gibt das erste nicht-null (oder null, wenn alle null). In Ihrem Beispiel zu vermeiden, die null-Werte in der Ausgabe, können Sie das folgende tun:InformationsquelleAutor libjack