hivereplace_Hive修改表
本章将介绍如何修改表的属性,如,修改表名,修改列名,添加列,并删除或替换列。
Alter Table 语句
它是在Hive中⽤来修改的表。
语法
声明接受任意属性,我们希望在⼀个表中修改以下语法。
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS(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[,])
Rename To… 语句
sql语句替换表中内容下⾯是查询重命名表,把 employee 修改为 emp。
hive>ALTER TABLE employee RENAME TO emp;
JDBC 程序
在JDBC程序重命名表如下。
importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importjava.sql.DriverM Register driver and create driver instanceClass.forName(driverName);// get
Connection("jdbc:hive://localhost:10000/userdb","","");// create ateStatement();// uteQuery("ALTER TABLE employee
RENAME TO emp;");System.out.println("Table Renamed Successfully");con.close();}}
将该程序保存在⼀个名为HiveAlterRenameTo.java⽂件。使⽤下⾯的命令来编译和执⾏这个程序。
$ javacHiveAlterRenameTo.java
$ javaHiveAlterRenameTo
输出
Table renamed successfully.
Change 语句
下表包含employee表的字段,它显⽰的字段要被更改(粗体)。
字段名
从数据类型转换
更改字段名称
转换为数据类型
eid
int
eid
int
name
String
ename
String
salary
Float
salary
Double
designation
String
designation
String
下⾯查询重命名使⽤上述数据的列名和列数据类型:
hive>ALTER TABLE employee CHANGE name enameString;hive>ALTER TABLE employee CHANGE salary salaryDouble;
JDBC 程序
下⾯给出的是使⽤JDBC程序来更改列。
importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importjava.sql.DriverM Register driver and create driver instanceClass.forName(driverName);// get
Connection("jdbc:hive://localhost:10000/userdb","","");//
create ateStatement();// uteQuery("ALTER TABLE employee
CHANGE name ename String;");uteQuery("ALTER TABLE employee CHANGE salary salary
Double;");System.out.println("Change column successful.");con.close();}}
将该程序保存在⼀个名为HiveAlterChangeColumn.java⽂件。使⽤下⾯的命令来编译和执⾏这个程序。
$ javacHiveAlterChangeColumn.java
$ javaHiveAlterChangeColumn
输出
Change column successful.
添加列语句
下⾯的查询增加了⼀个列名dept在employee表。
hive>ALTER TABLE employee ADD COLUMNS(>dept STRING COMMENT'Department name');
JDBC 程序
JDBC程序添加列到表如下。
importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importjava.sql.DriverM Register driver and create driver instanceClass.forName(driverName);// get
Connection("jdbc:hive://localhost:10000/userdb","","");// create ateStatement();// uteQuery("ALTER TABLE employee ADD COLUMNS "+" (dept STRING COMMENT 'Department name');");System.out.prinln("Add column successful.");con.close();}}
将该程序保存在⼀个名为HiveAlterAddColumn.java⽂件。使⽤下⾯的命令来编译和执⾏这个程序。
$ javacHiveAlterAddColumn.java
$ javaHiveAlterAddColumn
输出
Add column successful.
REPLACE语句
以下从employee表中查询删除的所有列,并使⽤emp替换列:
hive>ALTER TABLE employee REPLACE COLUMNS(>eid INT empidInt,>ename STRING nameString);
JDBC 程序
下⾯给出的是JDBC程序使⽤empid代替eid列,name代替ename列。
importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importjava.sql.DriverM Register driver and create driver instanceClass.forName(driverName);// get
Connection("jdbc:hive://localhost:10000/userdb","","");// create ateStatement();// uteQuery("ALTER TABLE employee
REPLACE COLUMNS "+" (eid INT empid Int,"+" ename STRING name String);");System.out.println(" Replace column successful");con.close();}}
将该程序保存在⼀个名为HiveAlterReplaceColumn.java⽂件。使⽤下⾯的命令来编译和执⾏这个程序。
$ javacHiveAlterReplaceColumn.java
$ javaHiveAlterReplaceColumn
输出:
Replace column successful.
¥ 我要打赏
纠错/补充
收藏
加QQ啦,易百教程官⽅技术学习
注意:建议每个⼈选⾃⼰的技术⽅向加,同⼀个QQ最多限加 3 个。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论