Hive行列互转

2023-05-16

目录

一:行转列

1:lateral view---行转列

2:explode函数

3:例子

 二:列转行

1:概念

2:例子


一:行转列

1:lateral view---行转列

lateral view用于和split, explode(展开)等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。lateral view首先为原始表的每行调用UDTF,UTDF会把一行拆分成一或者多行,lateral view再把结果组合,产生一个支持别名表的虚拟表。

一列:直接上面

select 字段,新字段 from 表名 lateral view explode(score) s as 新字段;

多列

select 字段,新字段... from 表名 lateral view explode(score...等字段) s as 新字段....;

s是虚拟的表的名称

2:explode函数

参数仅接受array和map类型,不支持两个一起用。所以lateral view可以解决。

3:例子

(1:当需要转列的数据是数组时、

创建表

create table testArray2(
    name string,
    weight array<string>
)row format delimited 
fields terminated by '\t'
COLLECTION ITEMS terminated by ',';

数据:


小华   "150","170","180"
小明    "150","180","190"

sql语句:

 select name,col1  from testarray2 lateral view explode(weight) t1 as col1;

结果:

小华    150
小华  170
小华    180
小明    150
小明    180
小明    190

 (2:当需要转的是map时(或者其他多个字段数据时)

select key from (select explode(map('key1',1,'key2',2,'key3',3)) as (key,value)) t;

key1
key2
key3

 二:列转行

1:概念

collect_list collect_map转成list或者map列转行

select 字段 collect_list(字段) from 表名 group by 字段;

2:例子

建表

create table testLieToLine(
    name string,
    col1 int
)row format delimited 
fields terminated by '\t';

数据

小明    150
小明    170
小明   180
小华    150
小华    180
小华    190
 

sql:

select name,collect_list(col1) from testLieToLine group by name;

结果:
小明    ["150","180","190"]
小华    ["150","170","180"] 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive行列互转 的相关文章

随机推荐

  • 数脉科技:Windows server 2016的基础设置

    是否经常不会设置Windows server 2016这款服务器而苦恼呢 xff0c 现在不用怕了数脉科技一点一点耐心的来教会大家如何学会Windows server 2016的基础设置吧 xff01 一 组策略 WIN键 43 R键 xf
  • 2020-09-11

    三招你成为短视频大神 xff01 很多小伙伴对于自媒体比较眼红 xff0c 看着抖音快手上很多靠直播 靠短视频火起来的人都挣到钱了 xff0c 所以跃跃欲试 xff0c 也想在这里面分一杯羹 但是真的那么容易吗 xff1f 直播就不用说了
  • 2020-10-15

    短视频配音选材的方法 网络短视频内容花样众多 xff0c 在快手短视频或者抖音短视频上面总是能刷到很多新奇的东西 xff0c 其中给短视频配音也是一个模块 xff0c 根据剧情来即兴发挥或者编排台词都是很重要的一部分 给短视频配音又分好多种
  • 服务器处理能力,你估算正确过吗?

    服务器处理能力 xff0c 你估算正确过吗 xff1f 作者 xff1a 成晓旭 1 引题 但凡写过技术方案的都知道 xff0c 在技术方案最终落实到工程实施部署时 xff0c 必须编制出当前解决方案需要部署的IT设备及环境 xff0c 包
  • 2020-10-20

    抖音快手短剧本写作方法 看别人拍的视频拍的新鲜有趣 xff0c 但是自己就是拍不出那种效果 xff0c 其实抖音视频前期是非常好做的 xff0c 可能发一个PPT一样的几张靓照或者是逗猫咪的小视频 xff0c 就能轻松获赞数十万 但是有个词
  • 2020-11-02

    如何更好的制作短视频内容 xff1f 细节决定成败 xff0c 对抖音短视频尤其重要 xff0c 抖音本来就是以内容为主的短视频平台 一个短视频能火 xff0c 一个短视频不火 xff0c 相同的主题 xff0c 不同的细节 xff0c 它
  • 2020-11-24

    如何才能撰写出好的短视频文案 首先是要调起用户的共鸣 xff0c 比如以前抖音上很火的一个视频 视频拍的很简单 xff0c 就是坐在出租车上拍摄的一些 xff0c 呼啸而过的高楼大厦和车流 xff0c 以及灰色的天空和不断向后跑的树 视频和
  • 2020-11-26

    短剧本创作小技巧 xff0c 提升完播率 相信每一个编剧在自己的短剧本拍成视频时 xff0c 都会有满足感和成就感 但有的时候 xff0c 也会辗转难眠 xff0c 而其中遇到了最大问题就是完播率太低 而影响完播率的关键所在 xff0c 就
  • 2020-11-28

    短剧本中的场景选择 一般在写短剧本的时候 xff0c 一个故事里面会有很多的故事场景 xff0c 场景写的比较好就会使短剧本在转换为段视频的时候 xff0c 制作的短视频会更加的好看 故事的场景也算得上是一个故事的主要开端 xff0c 开端
  • 基于C++11实现的阻塞队列(BlockQueue)

    思路 xff1a 生产者消费者模型 如图 xff0c 多个生产者线程和多个消费者线程共享同一固定大小的缓冲区 xff0c 它们的生产和消费符合以下规则 xff1a 生产者不会在缓冲区满的时候继续向缓冲区放入数据 xff0c 而消费者也不会在
  • 航空订票系统设计(java、数据库、通信联合项目)

    航空订票系统设计 xff08 java 数据库 通信联合项目 xff09 最近帮高中同学做的一个学校项目 xff0c 这个项目主要是用Java写的 前期主要搭建五个类 xff0c Order xff08 选择 xff09 Passenger
  • java基础之IO流中的字节流

    目录 一 xff1a 字节流写数据 二 xff1a 字节流写数据的方式 三 xff1a 字节流写数据实例 字节流写数据步骤 字节流写数据例子 字节流追加写数据 四 xff1a 字节流读取数据 五 xff1a 字节读取数据的方法 六 xff1
  • java基础之转换流

    目录 一 xff1a 解释 二 xff1a 转换流输入流 1 xff1a 构造方法 2 xff1a InputStreamReader读数据方法 3 xff1a 例子 3 xff1a 注意 三 转换流输出流 1 xff1a 构造方法 2 x
  • java基础之多线程的引入

    目录 一 xff1a 多线程概述 进程 线程 举例 二 xff1a 并行与并发 三 xff1a Java程序的运行原理 四 xff1a JVM启动的时候是单线程还是多线程呢 xff1f 一 xff1a 多线程概述 进程 正在运行的程序 xf
  • 电信运营商云计算体系架构分析

    电信运营商云计算体系架构分析 作者 xff1a 成晓旭 xff08 版权保留 欢迎转载 xff09 第三篇 xff1a 体系架构分析 电信运营商云计算发展分析之一 xff1a 战略定位分析 xff0c 可供参考 电信运营商云计算发展分析之二
  • java基础之线程安全问题(一)

    目录 一 xff1a 线程安全判断依据 二 xff1a 解决线程安全问题实现 同步代码块 1 格式 2 同步代码块的锁对象是谁 xff1f 3 xff1a 同步方法的时候 xff0c 锁对象又是谁呢 xff1f 4 xff1a 静态同步方法
  • java基础之线程安全问题(二)

    目录 一 xff1a Lock锁的使用 xff08 解决同步问题 xff09 二 xff1a 例子 三 xff1a 同步的特点 xff08 1 xff09 同步的前提 xff08 2 xff09 同步的好处 xff08 3 xff09 同步
  • redis基础知识

    目录 一 xff1a 概念 二 xff1a NoSQL分类 三 xff1a Redis数据模型 四 xff1a 键Key 一 xff1a 概念 开源的 xff08 BSD协议 xff09 xff0c 使用ANSI C 编写 xff0c 基于
  • Hive建表以及导入数据

    目录 一 xff1a 内部表和外部表 1 xff1a 外部表 2 xff1a 外部表 3 xff1a 外部表和内部表区别 二 xff1a 上传数据方式 一 xff1a 内部表和外部表 1 xff1a 外部表 内部表基础建表语句一 默认指定文
  • Hive行列互转

    目录 一 xff1a 行转列 1 xff1a lateral view 行转列 2 xff1a explode函数 3 xff1a 例子 二 xff1a 列转行 1 概念 2 xff1a 例子 一 xff1a 行转列 1 xff1a lat