首页 > 解决方案 > Hive - 将查找表数据合并到现有表以有效地创建新表

问题描述

我正在尝试根据从另一个表 (table_B) 检索到的值使用新列更新表 (table_A)。table_B 用作分类变量描述的查找表。在表 A 中有超过 100 列。

例如:table_A

指数 字段_x field_y
1 大号 小号
2 H H
3 小号

例如:table_B

变量的名称 变量类别 变量类别描述
字段_x 大号 低的
字段_x 中等的
字段_x H 高的
field_y 小号 柔软的
field_y H 难的

基于 table_A 和 table_B 我需要获得下表。

指数 字段_x field_x_description field_y field_y_description
1 大号 低的 小号 柔软的
2 H 高的 H 难的
3 中等的 小号 柔软的

我尝试了以下操作,但是表中有 100 个左连接和数百万个数据,这不起作用。有人可以建议我一种更有效的方法来执行此操作。有没有一种方法可以在没有每个属性描述的左连接的情况下执行此操作。

CREATE TABLE table_C AS 
SELECT a.index,
       a.field_x, 
       x.variable_category_description AS field_x_description,
       a.field_y, 
       y.variable_category_description AS field_y_description
FROM table_A
     LEFT JOIN table_B x ON x.variable_name  = 'field_x' 
                        and x.variable_category = a.field_x

     LEFT JOIN table_B y ON y.variable_name  = 'field_y' 
                        and y.variable_category = a.field_y
;

标签: hadoophiveleft-joinhiveqllookup

解决方案


推荐阅读