Advertisement

在HIVE中将纵向表格转换为横向表格

阅读量:

在近期编写Hive脚本的过程中,遇到了一个具体问题,当前存在一个纵向结构的表格(即详细表),具体如下所示 table T1

id bankname cardname
1 中国银行 金卡
2 中国银行 白金卡
3 建设银行 普卡
4 工商银行 金卡
5 建设银行 钻石卡

想把上面的纵表变为横表便于观看,如下所示:

id bankname1 cardname1 bankname2 cardname2
1 中国银行 金卡 中国银行 白金卡
2 建设银行 普卡 建设银行 钻石卡
3 工商银行 金卡

目前尚未在Hive中发现能够高效实现数据转换的工具,因此只能采用较为繁琐的方式进行处理,具体解决方式如下所示:

select id,
split(concat_ws(',',collect_list(concat(bankanme,':',cardname))[0]),':')[0],

split(concat_ws(',',collect_list(concat(bankanme,':',cardname))[0]),':')[1],

split(concat_ws(',',collect_list(concat(bankanme,':',cardnam

全部评论 (0)

还没有任何评论哟~