【问题标题】:After changing column name in hive, value of column are getting NULL在配置单元中更改列名后,列的值变为 NULL
【发布时间】:2020-07-31 04:17:40
【问题描述】:

在 hive 表上工作,我需要如下更改列名,它按预期工作并更改列名,但该列的下划线值变为 NULL。

ALTER TABLE db.tbl CHANGE hdfs_loaddate hdfs_load_date String;

此处更改的列名是 hdfs_load_date,重命名列名后值变为 NULL。

有没有人想办法解决这个问题。提前致谢!!

【问题讨论】:

    标签: hadoop hive hiveql


    【解决方案1】:

    @Ajay_SK 引用本文:Hive Alter table change Column Name

    有一条评论:

    请注意,如果是 parquet 表,则列更改不会更改任何基础数据。也就是说,如果表中已经有数据,重命名列不会使该列中的数据可以在新名称下访问:select a from test_change; 1 更改表 test_change 更改 a1 int;从 test_change 中选择 a1;空

    他是parquet特有的,但是你描述的场景是类似的,你已经成功改名了,但是hive仍然认为原始数据在原始key中。

    解决您的问题的更好方法是创建一个您想要更改列名的架构的新表。然后执行 Insert INTO new table select FROM * old table。

    【讨论】:

    • 谢谢史蒂文!!这会很有帮助,似乎很难更改下划线镶木地板文件的架构名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 2016-03-15
    相关资源
    最近更新 更多