Ich versuche, eine Tabelle durch Zusammenführen von anderen 3 Tabellen zu überschreiben. In der folgenden Art und Weise:Hive - Beim Hinzufügen einer neuen Spalte zu einer Tabelle bekomme ich: SemanticException [Fehler 10002]: Ungültige Spaltenreferenz
- Ich werde alle Spalten aus der tabelle1
- ich nur zwei Spalten von table2
- nehmen werde ich eine neue Spalten hinzufügen, basierend auf den Werten einer Spalte in Tabelle 3
die drei Tabellen: Tabelle 1, Tabelle 2 und Tabelle 3 haben als Schlüssel-ID
Dies ist die Abfrage ich versuche (so weit ich es ohne die INSERT OVERWRITE TABLE final_table
, nur mit der SELECT t versuch o die Ergebnisse sehen, die in die Tabelle eingefügt werden würde)
--INSERT OVERWRITE TABLE final_table
select
t1.*,
t2.field1,
t2.field2,
CASE WHEN (t3.indicator = 'F' OR
t3.indicator = 'O'
) THEN 'Y' ELSE 'N' END AS new_field3
from
table1 t1
LEFT OUTER JOIN table2 t2
ON (t1.id = t2.id)
LEFT OUTER JOIN table3 t3
ON (t1.id = t3.id);
Aber im CASE WHEN
ich die folgende Störung erhalte:
Error while compiling statement: FAILED: SemanticException [Error 10002]: Line 7:17 Invalid column reference 'new_field3'
Was mache ich falsch?
Danke, Sie beginnen zu antworten, bevor ich meine Bearbeitung in dem Teil abgeschlossen habe, auf den Sie hingewiesen haben: "Noch wichtiger ist, dass die Join-Bedingungen in Tabelle3 keine Tabelle3 enthalten". –