Hive行列转换
 
1、行转列 (根据主键,进行多行合并一列)
使用函数:concat_ws(‘,’,collect_set(column)) 
  • collect_list 不去重
  • collect_set 去重
  • column 的数据类型要求是 string
 
1.1、构建测试数据
vi row_to_col.txt
a   b   1
a   b   2
a   b   3
c   d   4
c   d   5
c   d   6
 
1.2、建表 
create table tmp_jiangzl_test
(col1 string,
col2 string,
col3 string)
row format delimited fields terminated by '\t'
stored as textfile;
 
1.3、加载数据
 
load data local inpath '/root/test-temp/row_to_col.txt' into table tmp_jiangzl_test;
 
1.4、执行转换
 
select col1,col2,concat_ws(',',collect_set(col3)) as bian
from tmp_jiangzl_test 
group by col1,col2;
 

2、列转行 (对某列拆分,一列拆多行)
使用函数:lateral view explode(split(column, ‘,’)) num
2.1、构建测试数据
vi col_to_row.txt
a   b   1,2,3
c   d   4,5,6
 
 
2.2、建表
 
create table col_to_row_test(
col1 string,
col2 string,
col3 string)
row format delimited fields terminated by '\t'
stored as textfile;
 
2.3、加载数据
 
load data local inpath '/root/test-temp/col_to_row.txt' into table col_to_row_test;
 
2.4、执行转换
 
select col1, col2, col3_new
from col_to_row_test a
lateral  view explode(split(col3,',')) b AS col3_new;
 

Hive行列转换的更多相关文章

  1. Hive 行列转换

    一.列转行 (对某列拆分,一列拆多行) 使用函数:lateral view explode(split(column, ',')) num eg: 如表:t_row_to_column_tmp 数据如 ...

  2. Hive中行列转换

    1.演示多列转为单行 数据文件及内容: student.txt xiaoming|english|92.0 xiaoming|chinese|98.0 xiaoming|math|89.5 huahu ...

  3. Oracle学习之路-- 案例分析实现行列转换的几种方式

    注:本文使用的数据库表为oracle自带scott用户下的emp,dept等表结构. 通过一个例子来说明行列转换: 需求:查询每个部门中各个职位的总工资 按我们最原始的思路可能会这么写:       ...

  4. SQL Server中行列转换 Pivot UnPivot

    SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...

  5. SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子

    使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UN ...

  6. 如何用Pivot实现行列转换

    在Oracle中,如果要实现行列转换,较为常见的是用DECODE和CASE语句.对于简单的行列转行,DECODE和CASE语句尚能应付.在逻辑比较复杂,分组聚合较多的场景中,DECODE和CASE语句 ...

  7. SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句

    原文出处:http://www.cnblogs.com/wy123/p/5933734.html 先看常用的一种表结构设计方式: 那么可能会遇到一种典型的查询方式,主子表关联,查询子表中的某些(或者全 ...

  8. SQL SERVER 合并重复行,行列转换

    引用自:http://www.cnblogs.com/love-summer/archive/2012/03/27/2419778.html sql server2000 里面如何实现oracle10 ...

  9. SQL中PIVOT 行列转换

    来源:http://www.studyofnet.com/news/295.html PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列 ...

随机推荐

  1. shell编程题(二)

    计算1-100之和 #!/bin/bash `;do #符号不是单引号 是 1左边的符号 sum=$[$i + $sum ] done echo $sum #!/bin/bash i= n=1 #定义 ...

  2. 第12组 Alpha冲刺(2/6)

    Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...

  3. ROS里程计的学习

    采用增量式编码器来实现odometry的计算,首先采用编码器对脉冲进行采样实现左右轮运动状态的获取,然后再利用增量式测程法得到机器人车体当前坐标系的位姿. 增量式测量法是使用从编码器采样到的数据并依据 ...

  4. ubuntu16.04解决文件中文乱码问题

    1.查看当前系统使用的字符编码 ~$ locale LANG=en_US LANGUAGE=en_US: LC_CTYPE="en_US" LC_NUMERIC="en_ ...

  5. Jmeter聚合报告理解

     Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 Samples:表示这次测试中一共发出了多少个请求 ...

  6. fmex挂单挖矿

    最近fmex上线挂单挖矿,针对挂单写了个程序,"跟随盘口,避免成交",0成本薅羊毛. 代码在 https://github.com/xiaoxiaoleo/fmexminer 使用 ...

  7. 三大框架 之 spring-JDBC

    目录 spring-JDBC模板 Spring的JDBC的模板 JDBC模板使用的入门 引入jar包 创建数据库和表 使用JDBC的模板 将连接池和模板交给Spring管理 配置文件配置Bean 使用 ...

  8. oralce 超过1亿条数据的数据库表清理实践

    2018-08-18 16:58 无腿鸟 阅读(331) 评论(0) 编辑 收藏 问题:当一个表的数据量超过一亿条,要删除其中的5000w条,如何处理. 如果直接使用delete语句,会涉及到到大量的 ...

  9. MYSQL 神奇的操作insert into test select * from test;

    将16行数据复制一份插入数据库,变成32行

  10. google镜像《转》

    最新谷歌镜像列表 https://jsproxy-demo.ml 谷歌镜像F1http://go.yuxuantech.com 谷歌镜像F1,非SSLhttps://www.siwa88.net 谷歌 ...