如何展平配置单元中的多个阵列

4zcjmb1e  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(313)

我的数据有两个数组(可能大小不同),如下所示:

{  
  "depotCode":"0001",
  "in":[  
    {  
      "partCode":"AX-01",
      "qty":15
    },
    {  
      "partCode":"AX-02",
      "qty":77
    },
    {  
      "partCode":"AX-03",
      "qty":100
    }      ],
  "out":[  
    {  
      "partCode":"AX-01",
      "qty":7
    },
    {  
      "partCode":"TB-77",
      "qty":5
    }
  ]
}

预期结果如下:

depotCode,partCode,in,out
0001,AX-01,15,7
0001,AX-02,77,0
0001,AX-03,100,0
0001,TB-77,0,5

对此的有效配置单元查询是什么?如果您注意到,由于ax-01同时出现在“in”和“out”中,那么这两个字段的值都不是零。至于另一个,任何一个都是零
ps:如果可能的话,我需要在单个查询中高效地完成这项工作,因为我们已经有超过10亿行了(所以应该避免可能很慢的子查询,除非子查询在hive或spark中不慢,等等)

nwlls2ji

nwlls2ji1#

@斯里兰卡·拉特纳普拉;使用concat\u ws函数
以下是关于它的文档:http://www.folkstalk.com/2011/11/string-functions-in-hive.html

Example: 
select concat_ws(',', col1, col2, col3, col4) from tbl 
Returns:
     col1,col2,col3,col4

希望这有帮助。谢谢。

相关问题