In diesem Kapitel wird erklärt, wie zu ändern die Attribute einer Tabelle wie das Ändern seine Tabellen namen, Ändern Säulen namen, Hinzufügung von Säulen und Löschen oder Ersetzen von Spalten.
Es wird verwendet, um eine Tabelle in Hive ändern.
Die Erklärung nimmt eine der folgenden Syntax auf, basieren auf was Attribute wollen wir in einer Tabelle zu ändern.
ALTER TABLE name RENAME TO new_name ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...]) ALTER TABLE name DROP [COLUMN] column_name ALTER TABLE name CHANGE column_name new_name new_type ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
Die folgende Abfrage benennt die Tabelle aus Arbeitnehmer zu emp.
hive> ALTER TABLE employee RENAME TO emp;
Der JDBC-Programm zum Umbenennen eine Tabelle ist wie folgt.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveAlterRenameTo { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement stmt.executeQuery("ALTER TABLE employee RENAME TO emp;"); System.out.println("Table Renamed Successfully"); con.close(); } }
sparen die Programm in ein Datei genannt HiveAlterRenameTo.java. Verwenden Sie die folgenden Befehle zu kompilieren und das Programm hinrichten.
$ javac HiveAlterRenameTo.java $ java HiveAlterRenameTo
Table renamed successfully.
Die folgende Tabelle enthält die Felder von Mitarbeiter Tabelle und zeigt die zu ändernden Felder (in Fettdruck).
Feldname | Konvertieren von Datentyp | Feldnamen ändern | Konvertieren in Datentyp |
---|---|---|---|
eid | int | eid | int |
name | String | ename | String |
salary | Float | salary | Double |
Benennung | String | Benennung | String |
Die folgenden Abfragen benennen Sie die Spaltennamen und Spaltendatentyp unter Verwendung der obigen Daten:
hive> ALTER TABLE employee CHANGE name ename String; hive> ALTER TABLE employee CHANGE salary salary Double;
Da unten ist die JDBC-Programm, um eine Spalte zu ändern.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveAlterChangeColumn { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement stmt.executeQuery("ALTER TABLE employee CHANGE name ename String;"); stmt.executeQuery("ALTER TABLE employee CHANGE salary salary Double;"); System.out.println("Change column successful."); con.close(); } }
sparen die Programm in ein Datei genannt HiveAlterChangeColumn.java. Verwenden Sie die folgenden Befehle zu kompilieren und das Programm hinrichten.
$ javac HiveAlterChangeColumn.java $ java HiveAlterChangeColumn
Change column successful.
In der folgenden Abfrage wird eine Spalte mit dem Namen Abteilung in die Tabelle Mitarbeiter.
hive> ALTER TABLE employee ADD COLUMNS ( > dept STRING COMMENT 'Department name');
Der JDBC-Programm, um eine Spalte zu einer Tabelle hinzufügen ist unten angegeben.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveAlterAddColumn { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement stmt.executeQuery("ALTER TABLE employee ADD COLUMNS " + " (dept STRING COMMENT 'Department name');"); System.out.prinln("Add column successful."); con.close(); } }
sparen die Programm in ein Datei genannt HiveAlterAddColumn.java. Verwenden Sie die folgenden Befehle zu kompilieren und das Programm hinrichten.
$ javac HiveAlterAddColumn.java $ java HiveAlterAddColumn
Add column successful.
Die folgende Abfrage löscht alle Spalten aus der Mitarbeiter Tabelle und ersetzt sie durch emp und Name Spalten:
hive> ALTER TABLE employee REPLACE COLUMNS ( > eid INT empid Int, > ename STRING name String);
Da unten ist der JDBC-Programm, um ersetzen eid Spalte mit empid und ename Spalte mit Namen .
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveAlterReplaceColumn { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement stmt.executeQuery("ALTER TABLE employee REPLACE COLUMNS " +" (eid INT empid Int," +" ename STRING name String);"); System.out.println(" Replace column successful"); con.close(); } }
sparen die Programm in ein Datei genannt HiveAlterReplaceColumn.java. Verwenden Sie die folgenden Befehle zu kompilieren und das Programm hinrichten.
$ javac HiveAlterReplaceColumn.java $ java HiveAlterReplaceColumn
Replace column successful.