HIVESQL的列转行和行转列使用总结

本文介绍了在大数据处理中,如何使用HIVE SQL进行列转行和行转列操作,以满足复杂数据需求。通过一个具体的业务背景,展示了将book_type列转换为多个属性列的过程,利用map结构进行转换,确保了数据灵活性,即使枚举值增加也能轻松应对。
摘要由CSDN通过智能技术生成

在日常数仓的数据开发中,业务数据需求会遇到很多行转列和列转行的需求,这里需要做一次总结,也可以把经验分享给大家

业务背景

不同业务下有着不同的业务逻辑,这里以一个抽象的业务背景为例子,帮助大家理解行转列的逻辑。现有hive数据表my_db.book_test,数据如下

book_id book_type
1 [科技,数学]
2 [小说,散文]
3 [历史,政治]

需求是想要将书的类型变成属性,主键为book_id,字段如下:

book_id is_novel is_history is_techno is_econo

思路分析

通过数据可以看出,一个书籍具有多个类型,但是枚举值是无法穷举的。从数据形式来看,是要将一列转为多列。这里可以先将原表列转行,然后行转列。
第一步转换代码

SELECT  book_id,
        book_type_ele
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值