Учебники

Улей – Таблица Изменения

В этой главе объясняется, как изменить атрибуты таблицы, например изменить имя таблицы, изменить имена столбцов, добавить столбцы и удалить или заменить столбцы.

Изменить таблицу

Он используется для изменения таблицы в Улей.

Синтаксис

Оператор принимает любой из следующих синтаксисов в зависимости от того, какие атрибуты мы хотим изменить в таблице.

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

Переименовать в … Заявление

Следующий запрос переименовывает таблицу из сотрудника в emp .

hive> ALTER TABLE employee RENAME TO emp;

Программа JDBC

Программа JDBC для переименования таблицы выглядит следующим образом.

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

Сохраните программу в файле с именем HiveAlterRenameTo.java. Используйте следующие команды для компиляции и выполнения этой программы.

$ javac HiveAlterRenameTo.java
$ java HiveAlterRenameTo

Выход:

Table renamed successfully.

Изменить заявление

В следующей таблице приведены поля таблицы сотрудников и показаны поля, которые необходимо изменить (жирным шрифтом).

Имя поля Преобразовать из типа данных Изменить имя поля Преобразовать в тип данных
Ид ИНТ Ид ИНТ
название строка ENAME строка
оплата труда терка оплата труда двойной
обозначение строка обозначение строка

Следующие запросы переименовывают имя столбца и тип данных столбца, используя приведенные выше данные:

hive> ALTER TABLE employee CHANGE name ename String;
hive> ALTER TABLE employee CHANGE salary salary Double;

Программа JDBC

Ниже приведена программа JDBC для изменения столбца.

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

Сохраните программу в файле с именем HiveAlterChangeColumn.java. Используйте следующие команды для компиляции и выполнения этой программы.

$ javac HiveAlterChangeColumn.java
$ java HiveAlterChangeColumn

Выход:

Change column successful.

Добавить столбец Заявление

Следующий запрос добавляет столбец с именем dept к таблице сотрудников.

hive> ALTER TABLE employee ADD COLUMNS ( 
dept STRING COMMENT 'Department name');

Программа JDBC

Программа JDBC для добавления столбца в таблицу приведена ниже.

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

Сохраните программу в файле с именем HiveAlterAddColumn.java. Используйте следующие команды для компиляции и выполнения этой программы.

$ javac HiveAlterAddColumn.java
$ java HiveAlterAddColumn

Выход:

Add column successful.

Заменить заявление

Следующий запрос удаляет все столбцы из таблицы employee и заменяет их столбцами emp и name :

hive> ALTER TABLE employee REPLACE COLUMNS ( 
eid INT empid Int, 
ename STRING name String);

Программа JDBC

Ниже приведена программа JDBC для замены столбца eid на empid, а столбец ename – на имя .

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

Сохраните программу в файле с именем HiveAlterReplaceColumn.java. Используйте следующие команды для компиляции и выполнения этой программы.