Hive中列转行函数collect_set详解
来源:互联网 发布:风行云 知乎 编辑:程序博客网 时间:2024/06/05 12:49
Hive中列转行函数collect_set详解
--1.创建测试表
create table test1011
(
c1 string,
c2 string,
c3 string
)
row format delimited fields terminated by ' '
stored as textfile;
--2.添加测试文件和数据
test20171011.txt
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
--3.加载数据
--使用场景: 通过hue文件上传
load data inpath '/user/pabrdm/test20171011.txt' into table pabrdm.test1011;
--使用场景: linux后台执行
--load data local inpath '/user/pabrdm/test20171011.txt' into table pabrdm.test1011;
有local表示从本地文件系统加载(文件会被拷贝到hdfs中)
无local表示从hdfs中加载数据(注意:文件直接被移动,而不是拷贝)
overwrite 表示是否覆盖表中数据(或指定分区的数据)(没有overwrite 会直接append,而不会滤重)
--4.查询
select * from test1011;
select c1,c2,collect_set(c3) as c3
from test1011
group by c1,c2;
结果如下:
c1 c2 c3
a b ["1","2","3"]
c d ["4","5","6"]
--5.补充字符串连接函数:concat_ws 带分隔符
它是一个特殊形式的concat(),第一个参数为分隔符。
这个函数会跳过分隔符参数后的任何null和空字符串。
分隔符将被加到被连接的字符串之间,如果分隔符是null,返回值也将为null。
select c1,c2,concat_ws(',',collect_set(c3)) as c3
from test1011
group by c1,c2;
c1 c2 c3
a b 1,2,3
c d 4,5,6
--1.创建测试表
create table test1011
(
c1 string,
c2 string,
c3 string
)
row format delimited fields terminated by ' '
stored as textfile;
--2.添加测试文件和数据
test20171011.txt
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
--3.加载数据
--使用场景: 通过hue文件上传
load data inpath '/user/pabrdm/test20171011.txt' into table pabrdm.test1011;
--使用场景: linux后台执行
--load data local inpath '/user/pabrdm/test20171011.txt' into table pabrdm.test1011;
有local表示从本地文件系统加载(文件会被拷贝到hdfs中)
无local表示从hdfs中加载数据(注意:文件直接被移动,而不是拷贝)
overwrite 表示是否覆盖表中数据(或指定分区的数据)(没有overwrite 会直接append,而不会滤重)
--4.查询
select * from test1011;
select c1,c2,collect_set(c3) as c3
from test1011
group by c1,c2;
结果如下:
c1 c2 c3
a b ["1","2","3"]
c d ["4","5","6"]
--5.补充字符串连接函数:concat_ws 带分隔符
它是一个特殊形式的concat(),第一个参数为分隔符。
这个函数会跳过分隔符参数后的任何null和空字符串。
分隔符将被加到被连接的字符串之间,如果分隔符是null,返回值也将为null。
select c1,c2,concat_ws(',',collect_set(c3)) as c3
from test1011
group by c1,c2;
c1 c2 c3
a b 1,2,3
c d 4,5,6
阅读全文
0 0
- Hive中列转行函数collect_set详解
- hive列转行 (collect_set())
- hive列转行 (collect_set())
- Hive--行转列(Lateral View explode())和列转行(collect_set() 去重)
- Hive 的collect_set使用详解
- Hive 的collect_set使用详解
- Hive 的collect_set使用详解
- Hive的collect_set使用详解
- Hive 的collect_set使用详解
- HIVE中关于collect_set与explode函数妙用
- Hive中的explode()函数和collect_set()函数
- Hive行转列,列转行
- Hive行转列,列转行
- Hive行转列、列转行
- hive列转行--行转列问题
- hive-列转行和行转列
- Hive "行转列"和"列转行"
- hive 行专列 列转行
- HTML5 全局属性
- Java Web开发实战经典学习过程笔记
- Bootstrap页头
- Qt见解:Post 与 Get 的区别(Get将参数直接与网址整合为一个整体,而Post则将其拆为两个部分)
- 构建工具-Maven简介-2
- Hive中列转行函数collect_set详解
- 数组操作
- Java Web开发实战经典学习过程笔记
- sizeof和strlen
- 顺序栈实现括号匹配
- 验证码图片的实现
- 关于VS环境下制作和使用静态库和动态库
- SpringBoot RequestMapping各方法的使用
- 《Java从入门到精通》学习笔记