В этой главе объясняется, как изменить атрибуты таблицы, например изменить имя таблицы, изменить имена столбцов, добавить столбцы и удалить или заменить столбцы.
Изменить таблицу
Он используется для изменения таблицы в Улей.
Синтаксис
Оператор принимает любой из следующих синтаксисов в зависимости от того, какие атрибуты мы хотим изменить в таблице.
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. Используйте следующие команды для компиляции и выполнения этой программы.