Spark SQL/Hive 同一列的多行记录合并为一行
来源:互联网 发布:淘宝津贴200是什么意思 编辑:程序博客网 时间:2024/05/17 23:00
可以写UDAF,但导jar包啥的挺麻烦的,我找了个简单方法,两个函数搞定。
需求是这样的,统计出同一用户在同一地点会去哪些商店,商店以':'隔开。
(第一列用户id,第二列商店id,第三列地区id,第四列日期)
spark-sql> select * from test;10277654822172201510281027765482217220151026881482482217220151129102776548221722015100710277654822172201510111027765482217220151010102776548221722015102310277654822172201510221027765820172201510301027765820172201510231027765820172201511141027765820172201511278814826709172201511218814827830172201511218814824317220151027Time taken: 0.259 seconds, Fetched 15 row(s)太简单了
spark-sql> select uid, lid, concat_ws(':',collect_set(mid)) as mids from test group by uid,lid;881482 172 4822:6709:7830:43 10277651724822:820Time taken: 1.933 seconds, Fetched 2 row(s)但要注意collect_set(mid)中的mid字段类型必须是string类型,不是的话改一下就可以了。
alter table test change mid mid string;将mid字段的字段名改为mid,字段类型改为string类型。
参考博客:http://blog.csdn.net/yfkiss/article/details/7859477
0 0
- Spark SQL/Hive 同一列的多行记录合并为一行
- SQL合并多行记录为一行(网抄文章)
- sql 多行转换为一行(STUFF及PIVOT的用法) ||SQL 合并列值和拆分列值
- 行转列,多列的数据合并为一行,行转换
- 用sql实现两行记录合并为一行记录
- SQL语句多行合并为一行
- sql多行合并为一行
- SQL合并同一分类的列值
- 合并多条记录的同一字段值SQL语句
- SQL数据多行合并成一行多列
- 用SQL将Oracle中同一列的多行记录拼接成一个字符串
- ORACLE 用SQL同一列的多行记录拼接成一个字符串
- SQL/Oracle 将一列多行合并为一行
- 多行合并为一行
- 关于sql动态行列转换,及多行内容合并为一行的写法
- Oracle 联接查询,字表多行字段合并为一行,以逗号分隔的查询SQL
- sql server同一字段多条记录的合并( sql server 2008以上)
- SQL将一行多列数据合并成 一列
- 计算机网络管理员(路由与交换) 专业简介
- 架构设计:系统间通信(10)——RPC的基本概念
- view.inflater和inflater.inflater有什么区别
- 自定义View
- 实现返回顶部按钮一直在页面底部(兼容ie6)
- Spark SQL/Hive 同一列的多行记录合并为一行
- 何时需要使用getMeasuredHeight()\getMeasuredWidth()?
- bzoj2956: 模积和
- dhcp 协议原理与说明
- 计算机网络管理员(路由与交换) 专业简介
- Apache Curator Lock 简单示例
- Android中Activity切换动画
- iOS之block浅谈
- 87. Nim Game