Hive-行转列,列转行

本文介绍了如何在 Hive 中进行数据转换,包括行转列和列转行的操作。通过 `collect_set` 和 `collect_list` 函数将多行数据聚合到数组中,再利用 `concat_ws` 实现数组到字符串的转换,从而达到行转列的效果。同时,通过 `explode` 函数将列中的数组拆分为多行,实现了列转行的操作,举例展示了具体的 SQL 语句和转换结果。
摘要由CSDN通过智能技术生成

行转列 将多行的数据合并到一列中 (把每行中的数据聚集到一个数组中)

  • collect_set () – 去重
  • collect_list (split(str)) 这两个都是聚合函数 将收集的多行数据聚集成一个数组集合
    concat (串,符,串。。。。。)拼接 参数是可变参数 拼接字符串
    concat_ws(符,数组/map) 参数一 拼接符 参数二 可变个数的字符串 数组

数据:

			慧慧	处女座	B
			老娜	射手座	A
			奔奔	处女座	B
			gangge	白羊座	A
			taoge	射手座	A

建表:

		create table  tb_teacher(
		name string ,
		xz string ,
		xx  string
		)
		row format delimited fields terminated by '\t' ;
		load data local inpath "/data/tc" into table tb_teacher ;

		+------------------+----------------+----------------+
		| tb_teacher.name  | tb_teacher.xz  | tb_teacher.xx  |
		+------------------+----------------+----------------+
		| 慧慧               | 处女座            | B              |
		| 老娜               | 射手座            | A              |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值