头歌Alter 表/列 第1关:Hive 的 Alter Table 操作

头歌Alter 表/列 第1关:Hive 的 Alter Table 操作

        我将在 Hive 中完成对 employee 表的 Alter 操作。以下是分步解决方案:

步骤 1:进入 Hive 客户端

输入:hive

hive

步骤 2:创建 employee 表

输入:CREATE TABLE employee( id INT, name STRING, department STRING, salary FLOAT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

CREATE TABLE employee(
    id INT,
    name STRING,
    department STRING,
    salary FLOAT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

步骤 3:导入数据

输入:LOAD DATA LOCAL INPATH '/data/workspace/myshixun/data/emp.txt' INTO TABLE employee;

LOAD DATA LOCAL INPATH '/data/workspace/myshixun/data/emp.txt' INTO TABLE employee;

步骤 4:使用 Alter Table 命令修改表结构

4.1 修改 id 列名为 emp_id

输入:ALTER TABLE employee CHANGE id emp_id INT COMMENT 'Employee ID';

ALTER TABLE employee 
CHANGE id emp_id INT COMMENT 'Employee ID';
4.2 修改 name 列名为 emp_name

输入:ALTER TABLE employee CHANGE name emp_name STRING COMMENT 'Employee Name';

ALTER TABLE employee 
CHANGE name emp_name STRING COMMENT 'Employee Name';
4.3 修改 salary 列数据类型为 double

输入:ALTER TABLE employee CHANGE salary salary DOUBLE COMMENT 'Employee Salary';

ALTER TABLE employee 
CHANGE salary salary DOUBLE COMMENT 'Employee Salary';
4.4 新增 hiredate 列

输入:ALTER TABLE employee ADD COLUMNS (hiredate DATE COMMENT 'Employee Hire Date');

ALTER TABLE employee 
ADD COLUMNS (hiredate DATE COMMENT 'Employee Hire Date');

验证表结构修改结果

输入:DESCRIBE employee;

DESCRIBE employee;

预期输出结果:

emp_id      int                     from deserializer   
emp_name    string                  from deserializer   
department  string                  from deserializer   
salary      double                  from deserializer   
hiredate    date                    from deserializer   

      

  如果能解决您的问题,麻烦您点个赞,一键三连!!!

关键操作说明:

  1. CHANGE 命令用于修改列名和数据类型

    • 语法:ALTER TABLE table_name CHANGE old_col new_col data_type;
    • 示例中保持了 department 列不变,仅修改了需要变更的列
  2. ADD COLUMNS 命令用于在表末尾添加新列

    • 语法:ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT 'comment']);
    • 新增的 hiredate 列会出现在所有现有列之后
  3. 注意事项

    • Hive 中修改列名不会影响数据存储
    • 修改数据类型时需确保源数据可兼容转换(如 FLOAT→DOUBLE 是安全的)
    • 新增列后,现有数据中该列值为 NULL

这些操作完成后,employee 表将符合题目要求的结构,可以通过DESCRIBE employee;命令验证结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值