`

hive 行转列和列转行的方法

    博客分类:
  • hive
阅读更多

一、行转列的使用

1、问题

hive如何将

a       b       1
a       b       2
a       b       3
c       d       4
c       d       5
c       d       6

变为:

a       b       1,2,3
c       d       4,5,6

 

2、数据

test.txt

a       b       1 
a       b       2 
a       b       3 
c       d       4 
c       d       5 
c       d       6

 

3、答案

1.建表

drop table tmp_jiangzl_test;
create table tmp_jiangzl_test
(
col1 string,
col2 string,
col3 string
)
row format delimited fields terminated by '\t'
stored as textfile;


load data local inpath '/home/jiangzl/shell/test.txt' into table tmp_jiangzl_test;

 

2.处理

 

select col1,col2,concat_ws(',',collect_set(col3)) 
from tmp_jiangzl_test  
group by col1,col2;

 

二、列转行

 

1、问题

hive如何将

a       b       1,2,3
c       d       4,5,6

 

变为:

 

a       b       1
a       b       2
a       b       3
c       d       4
c       d       5
c       d       6

 

2、答案

1.建表

drop table tmp_jiangzl_test;
create table tmp_jiangzl_test
(
col1 string,
col2 string,
col3 string
)
row format delimited fields terminated by '\t'
stored as textfile;


处理:

 

select col1, col2, col5

from tmp_jiangzl_test a 

lateral  view explode(split(col3,','))  b AS col5

 

本文行转列的例子引自:http://my.oschina.net/repine/blog/295961

0
1
分享到:
评论

相关推荐

    Python pandas 列转行操作详解(类似hive中explode方法)

    本文将详细讲解如何在pandas中进行列转行的操作,类似于Hive中的explode方法,这对于处理包含列表或者数组的数据尤为有用。 首先,我们来看一个简单的例子。假设有一个DataFrame `df`,其中包含两列:`A` 和 `B`,`...

    hive列转行案例

    hive列转行 1.函数说明 EXPLODE(col):将 hive 一列中复杂的 array 或者 map 结构拆分成多行。 LATERAL VIEW : 用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias 解释:用于和 split, explode 等 ...

    hive-笔记--hive常用用法

    内部表和外部表,导入数据,导出数据,将数据从hive的表中导出到本地磁盘目录中,HIVE的存储文件格式,修改表的分区,多重插入,HIVE的自定义函数功能,使用explode —— 行转列,配合lateral view 列转行方便统计,...

    【大数据必备】非科班转行Java大数据面经分享.zip

    理解HBase的列族、表、行键和时间戳的概念,以及如何使用Java API进行数据操作,是大数据开发者的必备技能。 此外,了解YARN(Hadoop的资源调度器)和Kafka(分布式流处理平台)也是必要的。YARN管理集群资源,确保...

    DataWhale组队学习-SQL秋招秘籍ABC.zip

    7.1 练习一: 行转列(难度:中等)) 7.2 练习二: 列转行(难度:中等) 7.3 练习三: 带货主播谁(难度:中等) 7.4 练习四: MySQL 中如何查看sql语句的执行计划?可以看到哪些信息?(难度:中等) 7.5 练习五...

    ch08_ 秋招秘籍 C1

    在SQL领域,转换数据结构是常见的操作,包括行转列和列转行。这里我们将讨论如何使用SQL实现这些转换,并解决连续登录天数的计算问题,以及探讨数据倾斜和LEFT JOIN的理解。 首先,我们来看行转列的例子。给定的...

    数仓面试题-推荐-面试必看

    行转列与列转行的实现** - 使用CASE WHEN语句配合GROUP BY实现行转列。 - 使用UNION ALL或子查询实现列转行。 **7. 大表全局排序的方法** - 使用采样排序。 - 先局部排序再合并排序结果。 #### 开放题 **1. ...

Global site tag (gtag.js) - Google Analytics