hive SQL 行转列 和 列转行
一、行转列的使用
1、问题
hive如何将
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
变为:
a b 1,2,3
c d 4,5,6
2、数据
test.txt
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
3、答案
1.建表
drop table tmp_jiangzl_test; create table tmp_jiangzl_test ( col1 string, col2 string, col3 string ) row format delimited fields terminated by '\t' stored as textfile; load data local inpath '/home/jiangzl/shell/test.txt' into table tmp_jiangzl_test;
2.处理
select col1,col2,concat_ws(',',collect_set(col3)) from tmp_jiangzl_test group by col1,col2;
二、列转行
1、问题
hive如何将
a b 1,2,3
c d 4,5,6
变为:
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
2、答案
1.建表
drop table tmp_jiangzl_test; create table tmp_jiangzl_test ( col1 string, col2 string, col3 string ) row format delimited fields terminated by '\t' stored as textfile;
处理:
select col1, col2, col5 from tmp_jiangzl_test a lateral view explode(split(col3,',')) b AS col5
hive中的concat,concat_ws,collect_set 用法:
collect_set的作用:collect_set(col)函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
concat_ws的作用:表示concat with separator,即有分隔符的字符串连接,concat_ws(”,collect_set(home_location))表示用空的字符”来连接collect_set返回的array中的每个元素。
concat:可以连接一个或者多个字符串,select concat(‘11’,’22’,’33’);//112233
原文:https://blog.csdn.net/chaoshengmingyue/article/details/82020667
本文转自:https://blog.csdn.net/buster2014/article/details/50461654
相关文章
- mybatis多条件查询sql_sql模糊查询多个条件
- 【愚公系列】2023年03月 Java教学课程 120-Mybatis(构建sql)
- ORA-31206: DBMS_LDAP: PL/SQL – Invalid LDAP search scope. ORACLE 报错 故障修复 远程处理
- Spark-Sql源码解析之二 Sqlparser:sql –> unresolved logical plan详解大数据
- Oracle 参数 OPTIMIZER_USE_SQL_QUARANTINE 官方解释,作用,如何配置最优化建议
- 运用Oracle构建健壮的SQL(oracle运行sql)
- SQL和Oracle教程:掌握计算机数据库的基础知识(sql教程oracle)
- 计算SQL Server中的数字取余(sqlserver取余)
- 快速学会PostgreSQL中导入SQL文件(postgresql导入sql文件)
- Oracle SQL中的全文索引实现(oracle全文索引)
- 使用SQL Server添加新字段(sqlserver添加字段)
- MySQL备份SQL:确保数据安全(mysql备份sql)
- 如何在MySQL中修改SQL语句?(mysql修改sql语句)
- 网络连接:MS SQL的精彩之处(网页链接mssql)
- MySQL数据库的SQL语句执行过程(mysql执行sql)
- 一览无余:SQL中漏掉的MSSQL(sql里面没有MSSQL)
- 关系SQL Server下父子表关系的实现(sqlserver 父子)
- 采用SQL Server,需要支付费用吗?(sqlserver收费吗)
- Oracle SQL 手册:帮助你轻松上手(oracle sql手册)
- Oracle SQL跟踪:如何优化数据库性能?(oracle跟踪sql)
- Oracle SQL跟踪工具的使用指南(oracle跟踪sql工具)
- MySQL数据库导入SQL文件实现快速搭建(sql文件导入mysql数据库)
- SQL与Redis结合让开发效率更上一层(sql和redis)
- 解决Oracle SQL 报错你可以做什么(oracle sql错误)
- Sql学习第一天——SQL练习题(建表/sql语句)