赞
踩
目录
表名:t2
表字段及内容:
a
1011
0101
问题:如何将字符'1'的位置提取出来
输出结果如下所示:
1,3,4
2,4
- create table t2 as
- select '1011' as a
- UNION ALL
- select '0101' as a
核心思想:
- (1)将字符串按照空格切开
- (2)利用posexplode()函数,将切开返回的数组展开(一行变多行,flatmap)
- (3)利用表生成函数与原表关联,原表为主表
- t2 lateral view posexplode(split(a,'')) t1 as pos,val
生成的pos值即为索引值,原表的数据会按照右边切开后的数据条数进行膨胀
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。