Ich erzeuge mein usql-Skript dynamisch ein Tabellenschema zu lesen. Ich habe vorhandene tsv-Dateien, die auf dem Datensee-Speicher vorhanden sind, und ich muss die neuen Daten den vorhandenen tsv-Dateien anhängen. Wenn ich jedoch usql-Skript erzeuge, kann das Tabellenschema geändert werden, und in der Tabelle können zusätzliche Spalten hinzugefügt werden.Spalten mit Standardwerten - usql
Soweit ich weiß, müssen wir die gleiche Anzahl von Spalten in Usql-Skript wie die in tsv-Datei haben. Ist es möglich, diese neu hinzugefügten Spalten mit einigen Standardwerten zu versehen? für z.B.
@Result = EXTRACT id string,
firstname string,
lastname string,
department string = "",
emp_id int = 0
FROM @inputfile
USING Extractors.Tsv();
Wie Sie sehen können, Abteilung und emp_id Spalten neu hinzugefügt, und ich möchte, dass sie in der Ausgabedatei mit einigen Standardwerten einzufügen. Wenn Spalten bereits in der TSV vorhanden sind, nehmen Sie die Spaltenwerte auf, andernfalls fügen Sie einige Standardwerte für sie ein.
Danke.
Es funktioniert. Gibt es eine Möglichkeit, ein Löschspaltenszenario zu behandeln? Bestehende Tsv-Datei hat 5 Spalten und neue Tsv hat 4 Spalten. Wenn ich jetzt die Daten an die vorhandene tsv-Datei angehängt habe, sollte meine resultierende Datei nur 4 Spalten haben. – Lokesh
Kannst du das als neue Frage stellen? Das macht es einfacher für später zu finden. –
Ich habe einen Workaround dafür bekommen. Nehmen Sie die Ergebnismenge beider Dateien in separaten Variablen und OUTER UNION sie. Nehmen Sie nur die erforderlichen Spalten in der endgültigen Ergebnisvariablen zur Ausgabe. – Lokesh