Impala中多列转为一行

原创 2015年07月08日 22:44:40

之前有一位朋友咨询我,Impala中如何实现将多列转为一行,其实Impala中自带函数可以实现,不用自定义函数。

下面我开始演示:

-bash-4.1$ impala-shell 

Starting Impala Shell without Kerberos authentication
Connected to cdha:21000
Server version: impalad version 1.4.2-cdh5 RELEASE (build eac952d4ff674663ec3834778c2b981b252aec78)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.


Copyright (c) 2012 Cloudera, Inc. All rights reserved.


(Shell build version: Impala Shell v1.4.2-cdh5 (eac952d) built on Tue Sep 16 19:15:40 PDT 2014)

[cdha:21000] > create table student(name string,subject string,score decimal(4,1));    -------------创建演示表:student(脱离学校四年了,还不忘自己是学生^_^)
Query: create table student(name string,subject string,score decimal(4,1))


Returned 0 row(s) in 1.97s
[cdha:21000] > insert into student values('xiaoming','math',89.5); ----------------插入演示数据 (小明和花花的学习成绩,他们感情比较好)
Query: insert into student values('xiaoming','math',89.5)
Inserted 1 rows in 2.56s
[cdha:21000] > insert into student values('xiaoming','english',92);
Query: insert into student values('xiaoming','english',92)
Inserted 1 rows in 0.39s
[cdha:21000] > insert into student values('xiaoming','chinese',98);
Query: insert into student values('xiaoming','chinese',98)
Inserted 1 rows in 0.42s
[cdha:21000] > insert into student values('huahua','chinese',80);
Query: insert into student values('huahua','chinese',80)
Inserted 1 rows in 0.40s
[cdha:21000] > insert into student values('huahua','math',89.5);
Query: insert into student values('huahua','math',89.5)
Inserted 1 rows in 0.29s
[cdha:21000] > select * from student;    ----------每次考完试,老师报分数时都很紧张    
Query: select * from student
+----------+---------+-------+
| name     | subject | score |
+----------+---------+-------+
| xiaoming | english | 92.0  |
| huahua   | chinese | 80.0  |
| xiaoming | chinese | 98.0  |
| huahua   | math    | 89.5  |
| xiaoming | math    | 89.5  |
+----------+---------+-------+
Returned 5 row(s) in 0.23s


[cdha:21000] > select name,group_concat(subject,',') from student group by  name;  ------------小试牛刀,看到了吧,多列拼接到一起了
Query: select name,group_concat(subject,',') from student group by  name
+----------+----------------------------+
| name     | group_concat(subject, ',') |
+----------+----------------------------+
| xiaoming | english,chinese,math       |
| huahua   | chinese,math               |
+----------+----------------------------+
Returned 2 row(s) in 0.38s

------------下面演示有价值的示例,显示高手之招,呵呵

------------这样就可以在一行上面,看到小明和花花的各科成绩了

[cdha:21000] > select name,group_concat(concat_ws('=',subject,cast(score as string)),',') from student group by  name;  
Query: select name,group_concat(concat_ws('=',subject,cast(score as string)),',') from student group by  name
+----------+-------------------------------------------------------------------+
| name     | group_concat(concat_ws('=', subject, cast(score as string)), ',') |
+----------+-------------------------------------------------------------------+
| xiaoming | english=92.0,chinese=98.0,math=89.5                               |
| huahua   | chinese=80.0,math=89.5                                            |
+----------+-------------------------------------------------------------------+
Returned 2 row(s) in 0.39s
[cdha:21000] > 


Hive的行列转换请查看: http://blog.csdn.net/jiangshouzhuang/article/details/46810529

版权声明:本文为博主原创文章,未经博主允许不得转载。

Hive中行列转换

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

Impala 教程

Impala 教程 Set Up Some Basic .csv Tables Impala 表指向已存的数据文件 查看 Impala 表结构 查询 Impala 表 数据加载与查询的例子 ...
  • opensure
  • opensure
  • 2015年05月19日 21:54
  • 33726

Impala查询流程日志分析

UHP博客文章地址:http://yuntai.1kapp.com/?p=1060 原创文章,转载请注明出处:http://blog.csdn.net/wind5shy/article/de...
  • wind5shy
  • wind5shy
  • 2013年02月01日 15:38
  • 5667

20160510 GreenPlum5 常用函数

1 序列生成函数    生成多行数据    #select * from generate_series(6,10);      ---6    7    8    9    10    可以创建测...
  • xiaochuan1225
  • xiaochuan1225
  • 2016年05月10日 14:28
  • 543

impala,hive行转列

Hive For Hive, I use collect_set() + concat_ws() from https://cwiki.apache.org/confluence/display...
  • enjoyjin
  • enjoyjin
  • 2014年12月02日 21:54
  • 3653

Impala中多列转为一行

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

Impala各版本新特性

本文主要整理一下 Impala 每个版本的新特性,方便了解 Impala 做了哪些改进、修复了哪些 bug。 Impala 目前最新版本为 1.4.0,其下载地址为:http://archive...
  • SunWuKong_Hadoop
  • SunWuKong_Hadoop
  • 2016年12月16日 14:53
  • 154

SQLServer多行多列数据转为一行

SQLServer多行多列数据转为一行
  • mh942408056
  • mh942408056
  • 2016年08月16日 21:03
  • 2285

ext实例:FormPanel布局例子,可以一行多列

 ext实例:FormPanel布局例子,可以一行多列2008-12-06 14:48columnWidth:05表示一行的50%-----------------------------------...
  • fdsa123456
  • fdsa123456
  • 2009年01月07日 21:28
  • 4651

gulp教程之gulp-concat

原文链接:http://www.ydcss.com/archives/83 简介: 使用gulp-concat合并javascript文件,减少网络请求。 1、安装nodejs/...
  • u013063153
  • u013063153
  • 2016年10月12日 14:21
  • 1605
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Impala中多列转为一行
举报原因:
原因补充:

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