Hive - Ändern Tabelle



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.

tabelle-Anweisung ändern

Es wird verwendet, um eine Tabelle in Hive ändern.

Syntax

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 ...])

Umbenennen Um ... Erklärung

Die folgende Abfrage benennt die Tabelle aus Arbeitnehmer zu emp.

hive> ALTER TABLE employee RENAME TO emp;

JDBC-Programm

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

Ausgabe:

Table renamed successfully.

Erklärung ändern

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;

JDBC-Programm

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

Ausgabe:

Change column successful.

Columns Erklärung hinzufügen

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');

JDBC Programm

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

Ausgabe:

Add column successful.

Ersetzen Erklärung

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);

JDBC Programm

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

Ausgabe:

Replace column successful.
Advertisements