如何根据 Hive 中的其他列比较派生新列



我在蜂巢中有巨大的表格和 2 列 A 和 B。
行相同,其中 A 或 B 或两者具有相同的值。
我想建立一个新列并根据此比较分配一个值:

A    B
--   --
a    b
a    c
d    b
p    q

结果:

A    B    New_Col
--   --   -----
a    b     id1
a    c     id1
d    b     id1
p    q     id2

有什么有效的解决方案吗?

可以通过在

SELECT 语句中使用 Hive 中的条件函数来实现此目的:

SELECT A, B, IF(A == 'a' OR B == 'b', 'id1', 'id2') AS New_Col FROM huge_table;

下面介绍如何使用新的派生列New_Colhuge_table创建new_huge_table

CREATE TABLE my_database.new_huge_table (A STRING, B STRING, New_Col STRING);
INSERT OVERWRITE TABLE my_database.new_huge_table
SELECT A, B, IF(A == 'a' OR B == 'b', 'id1', 'id2') AS New_Col FROM huge_table;

最新更新