将固定值列添加到 Hive 中的 table

Add a fixed value column to a table in Hive

我正在为 Hive 制作我的 Pig 脚本原型。我需要向从 Oracle 数据库导入的 table 添加一个状态列。

我的 pig 脚本如下所示:

user_data = LOAD 'USER_DATA' USING PigStorage(',') AS (USER_ID:int,MANAGER_ID:int,USER_NAME:int);

user_data_status = FOREACH user_data GENERATE
USER_ID,
MANAGER_ID,
USER_NAME,
'active' AS STATUS;

在这里,我将具有 'active' 值的 STATUS 列添加到 user_data table。 如何在通过 Hive QL 导入 table 时向现有 table 添加列以添加列?

据我所知,您必须像在 Pig 中那样重新加载数据。 例如,如果您已经有了包含列 USER_ID:int,MANAGER_ID:int,USER_NAME:int 的 table user_data,并且您正在寻找 USER_ID:int,MANAGER_ID:int,USER_NAME:int, STATUS:active

您可以使用类似这样的方式重新加载 table user_data_status

INSERT OVERWRITE TABLE user_data_status SELECT *, 'active' AS STATUS FROM user_data;

尽管可以选择将列添加到现有 table,但这只会更新 Metastore 中的元数据,并且值将默认为 NULL。

如果我是你,我宁愿重新加载完整的数据,也不愿在更改列结构后使用 UPDATE 命令更新完整的 table。希望这对您有所帮助!