我在蜂巢中有巨大的表格和 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_Col
从huge_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;