博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive之行转列/列转行
阅读量:6590 次
发布时间:2019-06-24

本文共 658 字,大约阅读时间需要 2 分钟。

1、行转列

场景:在hive表中,一个用户会有多个人群标签,List格式(逗号分隔如要转成List),有时我们需要统计一个人群标签下有少用户,这是就需要使用行转列了

例如,user_crowd_info有如下数据

visit_id    crowdsabc         [100,101,102]def         [100,101]abe         [101,105]

可以使用的函数

select explode(crowds) as crowd from user_crowd_info;结果:100101102100101101105

这样执行的结果只有crowd, 但是我们需要完整的信息,使用select visit_id, explode(crowds) as crowd from user_crowd_info;是不对的,会报错UDTF's are not supported outside the SELECT clause, nor nested in expressions

所以我们需要这样做:

select visit_id,crowd from user_crowd_info t lateral view explode(t.crowds) adtable as crowd;

2、列转行

使用concat_ws函数即可

select visit_id,concat_ws(,crowd) from user_crowd_info group by visit_id;

转载地址:http://myuio.baihongyu.com/

你可能感兴趣的文章
杂牌蓝牙在2003系统使用新驱动的破解方法!
查看>>
EventCache表太大, 怎么办?
查看>>
Top 10 mistakes in Eclipse Plug-in Development
查看>>
Directx教程(23) 简单的光照模型(2)
查看>>
判断站点访问的终端类型(移动端还是pc端)的方法
查看>>
使用sphinx来创建文档
查看>>
001淘淘商城项目:项目的Maven工程搭建
查看>>
[转]用了docker是否还有必要使用openstack?
查看>>
浅谈游戏的声音处理-流播放文件 source
查看>>
c语言之cgi实例
查看>>
Direct2D教程(八)梯度色画刷
查看>>
Swift vs. Objective-C:未来看好 Swift 的十个理由
查看>>
Java 并发性和多线程
查看>>
IE6下frameset横向滚动条BUG
查看>>
UVA 10026 Shoemaker's Problem
查看>>
XAML 属性设置Windows Phone笔记
查看>>
springboot整合mybatis中的mapper不影响使用,但是总是提示红线
查看>>
微信助力活动表结构设计
查看>>
Linux平台安装MongoDB
查看>>
开源iphone项目
查看>>