教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

简述Hive的行转列和列转行函数

更新时间:2024年01月31日10时40分 来源:传智教育 浏览次数:

好口碑IT培训

  Hive是一个基于Hadoop的数据仓库工具,用于处理大规模的数据集。在Hive中,有一些函数可用于行转列(Pivot)和列转行(Unpivot)操作。这些函数主要用于将表中的数据在行和列之间进行转换。

  一、行转列 - TRANSPOSE

  行转列是指将表中的行数据转换为列,通常使用TRANSPOSE函数。例如,如果有如下表:

+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
|  A1  |  B1  |  C1  |
|  A2  |  B2  |  C2  |
|  A3  |  B3  |  C3  |
+------+------+------+

  使用TRANSPOSE函数可以将行转列:

SELECT TRANSPOSE(col1, col2, col3) AS transposed_data
FROM your_table;

  结果可能如下:

+---------------------------+
|      transposed_data      |
+---------------------------+
| A1, B1, C1, A2, B2, C2, A3, B3, C3 |
+---------------------------+

  二、列转行 - LATERAL VIEW EXPLODE

  列转行是指将表中的列数据转换为行,通常使用LATERAL VIEW EXPLODE语法结合SELECT语句。例如,如果有如下表:

+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
|  A1  |  B1  |  C1  |
|  A2  |  B2  |  C2  |
|  A3  |  B3  |  C3  |
+------+------+------+

  使用LATERAL VIEW EXPLODE可以将列转行:

SELECT id, value
FROM your_table
LATERAL VIEW EXPLODE(ARRAY(col1, col2, col3)) AS your_table_alias;

  结果可能如下:

+----+-------+
| id | value |
+----+-------+
|  1 |  A1   |
|  1 |  B1   |
|  1 |  C1   |
|  2 |  A2   |
|  2 |  B2   |
|  2 |  C2   |
|  3 |  A3   |
|  3 |  B3   |
|  3 |  C3   |
+----+-------+

  这样,我们就可以通过LATERAL VIEW EXPLODE将表的列转为行,并生成新的行。

0 分享到:
和我们在线交谈!