sql - 如何将映射转换为配置单元中的列?

标签 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

最佳答案

使用 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

关于sql - 如何将映射转换为配置单元中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59410986/

相关文章:

sql - 配置单元查询 : Matching column Values from Array of string to make Flags

sql - SQL 查询中的汇总和总发票数据

database - 如何仅当 hdfs 中有文件时才执行命令

hadoop - 如果该列包含空值,如何从Hive表中获取列名?

hbase - 如何将 Hive 表与 HBase 表映射?

sql - Hadoop/Hive-基于CASE语句将列归为一-艰难的格式

sql - 通过id查看表

MYSQL 查询查找计数变化

mysql - SQL查询性能评估

java - 从单个 Hive UDF 创建多个列