如何使用cte更新表配置单元

mzillmmw  于 2021-07-13  发布在  Hadoop
关注(0)|答案(1)|浏览(384)

我不熟悉配置单元,正在尝试根据从另一个表(表\u b)检索到的值使用新列更新表(表\u a)。表\u b用作分类变量描述的查找表。
例:表a
索引字段\u xfield \u y1ls2hh3ms
例:表b
变量\u名称变量\u类别变量\u类别\u描述字段\u xlowfield \u xmmediumfield \u xhhighfield \u yssoftfield \u yhard
根据表a和表b,我需要得到下表。
索引字段描述字段描述
我试着在hue-hive编辑器中添加一个列作为开始。我的编辑器不支持update语句。

CREATE TABLE table_C AS 
SELECT index,
    field_x, 
    field_y, 
(SELECT variable_category_description
    FROM table_B 
    where table_B.variable_name = 'field_x' and  table_B.variable_category= table_A.field_x
AS field_x_description
FROM table_A

我得到以下错误
编译语句时出错:失败:parseexception行5:5无法识别表达式规范中“select”“variable\u category\u description”“from”“附近的输入
对此的修复非常感谢。

ktca8awb

ktca8awb1#

您需要两个与表\u b的连接(内部或左侧)

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
;

相关问题