博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive函数之行转列
阅读量:3937 次
发布时间:2019-05-23

本文共 1152 字,大约阅读时间需要 3 分钟。

CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;

COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。

CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;

2.数据准备

表   数据准备

name

constellation

blood_type

孙悟空

白羊座

A

大海

射手座

A

宋宋

白羊座

B

猪八戒

白羊座

A

凤姐

射手座

A

 

select concat_set(name) from person_info;

结果如下:(concat_set得到一个数组)

["孙悟空","大海","宋宋","猪八戒","凤姐"]

 

select concat_ws('|',collect_set(name)) from person_info;

结果如下:(concat_ws第二个参数可以是数组)

孙悟空|大海|宋宋|猪八戒|凤姐

 

3.需求

把星座和血型一样的人归类到一起。结果如下:

射手座,A            大海|凤姐

白羊座,A            孙悟空|猪八戒

白羊座,B            宋宋

4.创建本地constellation.txt,导入数据

[atguigu@hadoop102 datas]$ vi constellation.txt

孙悟空   白羊座   A

大海      射手座    A

宋宋      白羊座    B

猪八戒    白羊座    A

凤姐      射手座    A

5.创建hive表并导入数据

create table person_info(

name string,

constellation string,

blood_type string)

row format delimited fields terminated by "\t";

load data local inpath “/opt/module/datas/person_info.txt” into table person_info;

6.按需求查询数据

select

    t1.base,

    concat_ws('|', collect_set(t1.name)) name

from

    (select

        name,

        concat(constellation, ",", blood_type) base

    from

        person_info) t1

group by

    t1.base;

转载地址:http://ocuwi.baihongyu.com/

你可能感兴趣的文章
SQL Server 使用 FileStream存储图片文件等BLOB资料
查看>>
vs中 WebAPI 以Console application和WinForm作为宿主的部署
查看>>
Javascript常用日期获取方法
查看>>
SQL Server 将字符串按指定字符分隔后存储到table
查看>>
SQL Server的數據類型
查看>>
允許文本框輸入數字,退格鍵,小數點,負號
查看>>
利用线程解决页面打开加载数据延迟的问题
查看>>
c# 读写excel文件
查看>>
c#利用反射按名稱找到類的方法并執行
查看>>
EF添加DataModel時在config中隱藏connectiongstring敏感字符的方法
查看>>
在web page中按enter鍵焦點轉到下一個tabindex的控件
查看>>
EF 對于多條件的查詢
查看>>
VS.NET MVC(一)
查看>>
c# DataGridView datasource綁定datatable 與dataview的區別
查看>>
jQuery 教程
查看>>
.Net ExpandoObjecct類
查看>>
VS MVC设置起始页
查看>>
[转] Git 最佳实践:commit msg
查看>>
[转] [Gerrit] [Git] 新增/刪除tag
查看>>
[i.MX6] 下载编译NXP的linux源代码
查看>>