Hive中行列转换

原创 2015年07月08日 23:30:04
1、演示多列转为单行
数据文件及内容: student.txt
xiaoming|english|92.0
xiaoming|chinese|98.0
xiaoming|math|89.5
huahua|chinese|80.0
huahua|math|89.5

创建表studnet:
create table student(name string,subject string,score decimal(4,1))
row format delimited
fields terminated by '|';

导入数据:
load data local inpath '/home/hadoop/hivetestdata/student.txt' into table student;


列转为行演示:
hive (hive)> select name,concat_ws(',',collect_set(subject)) from student group by name;
huahua    chinese,math
xiaoming english,chinese,math


hive (hive)> select name,concat_ws(',',collect_set(concat(subject,'=',score))) from student group by name;
huahua chinese=80,math=89.5
xiaoming english=92,chinese=98,math=89.5


2、演示单行转为多列
数据文件及内容:student2.txt
huahua|chinese=80,math=89.5
xiaoming|english=92,chinese=98,math=89.5

创建表:
create table student2(name string,subject_score_list string)
row format delimited

fields terminated by '|';

导入数据:

load data local inpath '/home/hadoop/hivetestdata/student2.txt' into table student2;

行转为列演示:
hive (hive)> select * from student2;
student2.name student2.subject_score_list
huahua             chinese=80,math=89.5
xiaoming          english=92,chinese=98,math=89.5


hive (hive)> select name, subject_list from student2 stu2 lateral view explode(split(stu2.subject_score_list,','))stu_subj as subject_list; ----别名一定不要忘记
huahua    chinese=80
huahua    math=89.5
xiaoming english=92
xiaoming chinese=98
xiaoming math=89.5


Impala的行列转换请查看: http://blog.csdn.net/jiangshouzhuang/article/details/46809931
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

hive-列转行和行转列

1. 假设我们在hive中有两张表,其中一张表是存用户

oracle行列转换

1、多行转换单列字符串 比如:   需要转换成: 1    b,z,x 2    c,x 写法1:        SELECT t.rank ,max(substr(s...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

hive行列转换总结

1、单列转换成多行 比如: pageid  paged page1   a,b,c 要转换成 page1 a page1 b page1 c select pageid,p from test lat...

Impala中多列转为一行

之前有一位朋友咨询我,Impala中如何实现将多列转为一行,其实Impala中自带函数可以实现,不用自定义函数。 下面我开始演示: -bash-4.1$ impala-shell  Starting ...

使用Hive实现时间拉链功能

背景: 在数据仓库的数据模型设计过程中,经常会遇到如下的业务需求: 1. 表的数据量很大,大几千万或上亿; 2. 表中的部分字段会被update更新操作,如用户的上级领导,产品的描述信息,订单的状态...

Hive分析窗口函数之GROUPING SETS,CUBE和ROLLUP

这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计。 环境信息: Hive版本为apache-hive-0.14.0-bin Hadoop版本为hadoop-2.6....

Hive性能优化

架构层面优化: l  分表 l  合理利用中间结果集,避免查过就丢的资源浪费,减低Hadoop的IO负载 l  常用复杂或低效函数尽量不用或拆分成其他实现方式,如count(distinct) ...

Hive分析窗口函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK

继续介绍几个序列函数: NTILE,ROW_NUMBER,RANK和DENSE_RANK 环境信息: Hive版本为apache-hive-0.14.0-bin Hadoop版本为hadoop-2...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)