在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)
还没有任何评论哟~
