在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 大數(shù)據(jù)/ Hive修改表
Hive創(chuàng)建數(shù)據(jù)庫
Hive內(nèi)置函數(shù)
Hive刪除數(shù)據(jù)庫
Hive視圖和索引
Hive內(nèi)置運(yùn)算符
Hive刪除表
HiveQL Select Order By
HiveQL Select Group By
Hive修改表
HiveQL Select Join
HiveQL Select Where
Hive分區(qū)
Hive教程
Hive數(shù)據(jù)類型
Hive安裝
Hive創(chuàng)建表

Hive修改表

本章將介紹如何修改表的屬性,如,修改表名,修改列名,添加列,并刪除或替換列。

Alter Table 語句

它是在Hive中用來修改的表。

語法

聲明接受任意屬性,我們希望在一個(gè)表中修改以下語法。

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

Rename To… 語句

下面是查詢重命名表,把 employee 修改為 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();
   }
}

將該程序保存在一個(gè)名為HiveAlterRenameTo.java文件。使用下面的命令來編譯和執(zhí)行這個(gè)程序。

$ javac HiveAlterRenameTo.java
$ java HiveAlterRenameTo

輸出

Table renamed successfully.

Change 語句

下表包含employee表的字段,它顯示的字段要被更改(粗體)。

字段名 從數(shù)據(jù)類型轉(zhuǎn)換 更改字段名稱 轉(zhuǎn)換為數(shù)據(jù)類型
eid int eid int
name String ename String
salary Float salary Double
designation String designation String

下面查詢重命名使用上述數(shù)據(jù)的列名和列數(shù)據(jù)類型:

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 CHAN