hive中的列转行和行转列
1、列转行
1.1 相关函数的说明:
concat(string1,string,...) //连接括号内字符串,数量不限。
concat_ws(separator,string1,string2,...) //连接括号内字符串,数量不限,连接符为separator。
collect_set(col) //此函数只接受基本类型,主要是将字段的值进行去重汇总,产生array类型字段。
1.2 例子:

创建表:create table person_info(
name string,
constellation string,
blood_type string
)row format delimited fields terminated by '\t';
上传数据:
load data local inpath ‘/home/hdc/constellation.txt’ into table person_info;
查询语句:
select t.base,concat_ws('|',collect_set(t.name)) name
from(
select name,concat(costellation,',',blood_type) base
from person_info
)t
group by t.base;
2、行转列
2.1 相关函数:
explode(col_name):将hive中的一列中复杂的array或者map分成多行
lateral view:侧视图配合explode(或者其他的UDTF),一个语句生成把单行数据拆解成多行后的数据结果集。 //LATERAL VIEW explode(split(goods_id,','))goods相当于一个虚拟表
2.2 例子:

创建表:create table movie_info(
name string,
categroy array<string>
)row format delimited fields terminated by '\t';
collection items terminated by ',';
上传数据:
load data local inpath '/home/hdc/movie.txt' into table movie_info;
查询语句:
select name,category_type
from movie_info lateral view explode(categroy) temp_table as category_type;
解析:表movie_info与虚表temp_table进行笛卡尔乘积其中temp_table表中的字段为category_type
explode还有如下用法:
select distinct(t2.videoid), t3.category
from (
select explode(relatedid) as videoid
from (
select *
from video_orc
order by views desc
limit 50) t1
)t2
-->
hive中的列转行和行转列的更多相关文章
- SQL列转行,行转列实现
在工作中,大家可能会遇到一些SQL列转行.行转列的问题,恰好,我也遇到了,就在此记录一下.此处所用的是SQLServer2008R2. 行转列,列转行,都要预先知道要要处理多少数据,在此我就以三种方案 ...
- hive中array嵌套map以及行转列的使用
1. 数据源信息 {"student": {"name":"king","age":11,"sex" ...
- Spark基于自定义聚合函数实现【列转行、行转列】
一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...
- oracle 逗号分割,列转行,行转列
SQL代码 列转行 select REGEXP_SUBSTR(a.rolecode ,,l) rolecode from ( select 'a,aa,aaa' rolecode from dual ...
- SQL 列转行与行转列
假设有张学生成绩表(tb)如下:Name Subject Result张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94*/ -------------- ...
- sqlserver 行转列、字符串行转列、自动生产行转列脚本
行转列,老生常谈的问题.这里总结一下网上的方法. 1.生成测试数据: CREATE TABLE human( name ), --姓名 norm ), --指标 score INT , --分数 gr ...
- 转:hive-列转行和行转列
1. 假设我们在hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下: user_basic_info: id name 1 a 2 b 3 c 4 d use ...
- pandas中获取数据框的行、列数
获取数据框的行.列数 # 获取行数 df.shape[0] # 获取行数 len(df) # 获取列数 df.shape[1]
- MySQL 行转列 -》动态行转列 -》动态行转列带计算
Pivot Table Using MySQL - A Complete Guide | WebDevZoomhttp://webdevzoom.com/pivot-table-using-mysql ...
随机推荐
- 继续写高精!noip2012国王游戏。。。
国王游戏 题目描述: 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王 ...
- 基于MyBatis实现Dao编程
基于MyBatis实现Dao编程 1.建立mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8" ...
- [CSP-S模拟测试]:count(树分块)
题目描述 李华终于逃离了无尽的英语作文,重获自由的他对一棵树产生了兴趣.首先,他想知道一棵树是否能分成大小相同的几块(即切掉一些边,使得每个连通块的点数相同).然后,他觉得这个问题过于简单,于是他想知 ...
- 如何正确安装Mysql
1.官网去下载 2.针对操作系统的不同下载不同的版本 安装步骤: 第一步解压文件:位置为你想要安装的盘符第二步加载环境变量加载的是bin目录第三步初始化:在cmd终端中输入 mysqld --ini ...
- .Net-WCF-图书:《WCF编程》
ylbtech-.Net-WCF-图书:<WCF编程> <WCF编程>是2008年1月机械工业出版社出版的图书,作者是Juval Lowy.Clemens Vasters. 1 ...
- Mongodb php扩展及安装
Mongodb php扩展 Mongodb安装 1: 下载mongodb www.mongodb.org 下载最新的stable版 2: 解压文件 3: ...
- poj1182食物链(三类并查集)
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用两种 ...
- python3 -tensorflow-dataset 之map函数 lambda隐函数的应用
###隐函数lanbda及map函数的应用实例 ''' lambda 参数1,参数2,参数3,...:表达式 ''' f = lambda x,y :x+y print(f(1,2)) ###输出3 ...
- Parentheses Sequence微软编程笔试
描述 You are given a sequence S of parentheses. You are asked to insert into S as few parentheses as p ...
- Python 学习笔记18 异常处理
我们在编码的过程中,难免会遇到一些错误和异常, 这时候程序会异常退出,并且会抛出错误信息: 比如: print(1/0) ''' 输出: Traceback (most recent call las ...