`

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多行转多列 和 多列转多行

    1、HIVE多行转多列 源数据样式 把CAMERA_NO,RESULT_DATA两列转换为CAMERA_NO字段的数据为列名,RESULT_DATA字段对应CAMERA_NO的数据为值 方法一:利用str_to_map函数 alter table ods.iot.iot_5060_iotdaq.5060_...

    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 列转行方便统计,...

    09.hive内置函数--表生成函数--行转列explode--lateral-view.mp4

    09.hive内置函数--表生成函数--行转列explode--lateral-view.mp4

    Hive优化方法整理

    Hive 优化方法整理是 Hive 数据处理过程中的重要步骤,涉及到 Hive 的类 SQL 语句本身进行调优、参数调优、Hadoop 的 HDFS 参数调优和 Map/Reduce 调优等多个方面。 Hive 类 SQL 语句优化 1. 尽量尽早地过滤数据...

    HIVE和HBASE区别

    HIVE必须提供预先定义好的schema将文件和目录映射到列,并且HIVE与ACID不兼容。 HBASE查询是通过特定的语言来编写的,这种语言需要重新学习。类SQL的功能可以通过Apache Phonenix实现,但这是以必须提供schema为...

    hive远程连接工具和jar.zip

    安装和配置SQuirreL SQ Client时,你需要将这些JAR文件添加到SQuirreL的Classpath中,以便工具能够识别Hive的相关类和方法。一旦配置完成,你就可以通过创建一个新的JDBC连接,输入Hive服务器的详细信息,然后开始...

    HIVE安装及详解

    HIVE是一种基于Hadoop的数据仓库工具,主要用于处理和分析大规模数据。下面是关于HIVE的安装及详解。 HIVE基本概念 HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将结构化数据文件转换为...

    hive

    3. **灵活性**:Hive 支持多种数据模型,包括行存储和列存储,可以根据不同的查询需求选择合适的数据模型。同时,Hive 还支持自定义函数(UDF),用户可以编写自己的函数来扩展其功能。 4. **容错性**:Hive 构建在...

    hive和hbase整合

    这里,`STORED BY`指定了HBase的存储处理类,`WITH SERDEPROPERTIES`定义了列族和列的映射,`:key`表示HBase的行键,`cf1:val`和`cf2:val`是列族和列。`TBLPROPERTIES`指定了HBase表的名称。 然而,在执行上述创建...

    hive客户端安装_hive客户端安装_hive_

    在大数据处理领域,Hive是一个非常重要的工具,它提供了一个基于Hadoop的数据仓库基础设施,用于数据查询、分析和管理大规模数据集。本教程将详细讲解如何在Linux环境下安装Hive客户端,以便进行数据操作和分析。 ...

    hive jdbc依赖的jar包

    每个结果行可以通过`ResultSetMetaData`获取列名和类型信息,通过`ResultSet.next()`移动指针,`ResultSet.getObject()`或`ResultSet.getString()`等方法获取列值。 5. **事务处理**:Hive默认不支持事务,但某些...

    hive相关jar包

    在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询和管理存储在Hadoop分布式文件系统(HDFS)中的大量数据。Hive提供了数据整合、元数据管理、查询和分析...

    hive和oracle函数对照表.xlsx

    包含hive和oracle的常用函数对比关系表,可以用于查询hive函数转换成oracle函数,或者oracle函数转换hive函数之间的相互转换。

    Hive数据导入HBase的方法.docx

    Hive 数据导入 HBase 的方法 Hive 是一个基于 Hadoop 的数据仓库工具,而 HBase 是一个基于 Hadoop 的 NoSQL 数据库。它们都是大数据处理的重要组件。在数据处理过程中,经常需要将数据从 Hive 导入到 HBase 中。...

    Hive3.1.2编译源码

    使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...

Global site tag (gtag.js) - Google Analytics