2016-11-01 5 views
0

Ich habe zwei Spalten Id und Name in Hive-Tabelle, und ich möchte die Name Spalte löschen. Ich habe folgenden Befehl:Wie man Bienenstock Spalte fallen lassen?

ALTER TABLE TableName REPLACE COLUMNS(id string); 

Das Ergebnis war, dass die Name Spaltenwerte der Id Spalte zugewiesen wurden.

Wie kann ich eine bestimmte Spalte der Tabelle löschen und gibt es einen anderen Befehl in Hive, um mein Ziel zu erreichen?

+2

[selbe Q] (http://stackoverflow.com/questions/34198114/alter-hive-table-add-or-drop-column) Sie können Hilfe von diesem Q und Antwort erhalten –

Antwort

0

Zusätzlich zu den bestehenden Antworten auf die Frage: Alter hive table add or drop column

Per Hive documentation,

REPLACE COLUMNS entfernt alle vorhandenen Spalten und fügt den neuen Satz von Spalten.

REPLACE COLUMNS kann auch verwendet werden, um Spalten zu löschen. Zum Beispiel wird ALTER TABLE test_change REPLACE COLUMNS (a int, b int); die Spalte c aus dem Schema test_change entfernen.

0

Die von Ihnen verwendete Abfrage ist richtig. Dies ändert jedoch nur das Schema, d. H. Den Metastore. Dies wird nichts auf der Datenseite ändern.

Bevor Sie also die Spalte löschen, sollten Sie sicherstellen, dass Sie die Datendatei korrigiert haben.

In Ihrem Fall sollte die Datendatei keine Namenswerte enthalten.

Wenn Sie die Datei nicht ändern möchten, erstellen Sie eine weitere Tabelle mit nur einer bestimmten Spalte, die Sie benötigen.

Create table tablename as select id from already_existing_table 

lassen Sie mich wissen, wenn dies hilft.

Verwandte Themen