当前位置:   article > 正文

Hive中explode的用法_hive explode

hive explode

hive的explode 函数通常是与侧视图(lateral view)一起使用,
主要用于规范化行 或者解析json
一个数据表的表数据如下所示。
在这里插入图片描述1、我们如何把student这一列中的数据由一行变成多行。这里需要使用split和explode,并结合lateral view实现。
代码如下:select class,studentName from class lateral view explode(split(studnet,',')) t as studentName;在这里插入图片描述

2、每个同学来一个编号,假设编号就按姓名的顺序,此时我们要用到另一个hive函数,叫做posexplode
代码如下:
select class,stuIndex+1 as stuIndex,studentName from class lateral view posexplode(split(studnet,',')) t as stuIndex,studentName;

在这里插入图片描述
3、如果我们分别对两列进行explode的话,假设每列都有三个值,那么最终会变成3 * 3 = 9行。但我们想要的结果只有三行。此时我们可以进行两次posexplode,姓名和成绩都保留对应的序号,即使变成了9行,我们通过where条件只保留序号相同的行即可
代码如下:select class,stuName,stuScore from class lateral view posexplode(split(studnet,',')) t as stuIndex1,stuName lateral view posexplode(split(score,',')) s as stuIndex2,stuScore where stuIndex1=stuIndex2;

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/426577
推荐阅读
相关标签
  

闽ICP备14008679号