如何在蜂巢中将地图转换为列?

时间:2019-12-19 13:42:10

标签: sql hive hiveql

假设我们有

columnsA        columnsB
   1           {'A':22,'B':11}
   2           {'A':13,'C':24}

如何将其转换为

columnsA   A   B   C
   1       22  11  NA
   2       13  NA  24

1 个答案:

答案 0 :(得分:0)

使用Map[key] operator

select m['A'] A,  
       m['B'] B, 
       m['C'] C 
  from (select str_to_map("A:22,B:11") m) s;

返回:

A       B       C
22      11      NULL

如果您需要'NA'而不是NULL,请使用NVL()函数:

NVL(m['A'],'NA') as A