hive库concat_ws函数实现 一行转多行,多行转一行

Hive中的CONCAT、CONCAT_WS与COLLECT_SET函数 concat用于连接字符串。concat_ws用于按照指定的分隔符连接字符串。与group by和concat_ws一起使用可以实现"列转行。 阅读详情

首先先说一下,我用的hive库是海致BDP,是一款成熟的hive产品,所以和正常的hive数据库还是又一定区别,不过同组的老哥说语法和hive几乎一样。

分为两步

第一步:把逗号分隔的多个id从一行分隔成多行

利用lateral view explode( )函数,把一行拆成多列

select fi.id,fi.film_star,s_film_star
from film_info fi
lateral view explode(split(film_star,',')) t as s_film_star

第二步:把多行id与字典表进行关联,拿到对应值,并把多行对应值捏成一行

1.hive库不支持子查询,所以把拆成多行的数据用temp表暂存

2.然后用拆分出来的表对字典表关联,拿到需要用的值

3.利用concat_ws( )、collect_set( )函数,通过group by分组,捏成一行

TEMP actor_l = 
select fi.id,fi.film_star,s_film_star
from film_info fi
lateral view explode(split(film_star,',')) t as s_film_star

select 
max(actor_l.id) as film_id,
max(actor_l.film_star) as film_star,
concat_ws(',', collect_set(actor.actor_name)) as actor_name
from actor_l -- 上面的temp表
left join actor on actor.id = actor_l.s_film_star -- 需要获取信息的表
group by actor_l.id

然后拿着film_id去关联就可以了

大功告成!

hive中concat_ws的秘密 阅读详情

相关推荐

hive concat_ws列转行排序问题

hive concat_ws列转行排序问题

super_chenzhou 5454

hive:函数:concat_ws函数

环境: 1. hive版本0.13.0 2. 表test_array有数组字段例如: select c_array from test_arraywhere dt='2016-09-26' and size(c_array)=2 limit 2; ["105750","1246345","907964"] ["935105","359772","935104"] 3.转为字符...

不花的花和尚的博客 3万+

【大数据Hive】hive 行列转换使用详解

hive行列转换使用详解

congge_study的博客 8706

Hive-concat_ws 详解

该函数将使用指定的分隔符将所有提供的字符串或字符串数组连接在一起。它接受任意数量的参数,并且可以用于连接单个字符串或字符串数组。是 Hive 中的一个函数,用于在给定分隔符的情况下连接字符串数组或字符串。的参数中有 NULL 值,那么连接的结果中将会忽略这些 NULL 值。在上面的示例中,我们使用逗号和空格作为分隔符,将三个字符串。在上面的示例中,尽管第二个参数是 NULL,但。在这个例子中,我们将一个包含三个字符串的数组。函数,并使用逗号和空格作为分隔符。需要注意的是,如果传递给。

weixin_42497376的博客 4807

HIVE多行转多列 和 多列转多行

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

zhengzaifeidelushang的博客 2928

OpenSees入门指南:从零开始的环境配置与TCL脚本实战

本文提供了一份详细的OpenSees入门指南,涵盖从零开始的环境配置到TCL脚本实战的全过程。文章重点讲解了OpenSees的安装步骤、环境变量设置,并推荐了高效的VS Code集成开发环境配置方法。通过一个简支梁分析的完整TCL脚本示例,手把手引导读者完成第一个非线性有限元分析,帮助土木工程与结构工程领域的研究者与学生快速上手这一强大的开源分析工具。

weixin_28829339的博客 336

hive 行转列/列转行 多行转一行/一行转多行

mysql跟hive列转行/行转列一样,但是多行转一行,一行转多行就不太一样了 链接:mysql 行转列,多行转一行,列转行,一行转多列 hive 启动hive时 ./hive -S (去除MR打印日志) hive命令行 set hive.exec.mode.local.auto=true; 设置本地模式 数据准备: create table student_score(s_id int,s_name string,s_sub string,s_score bigint); insert into stu

qq_28603127的博客 7430

卡门涡街可视化实战:从网格加密策略到动画后处理技巧

本文详细介绍了利用ANSYS Fluent进行卡门涡街可视化模拟的全流程,包括网格加密策略、求解器设置、涡街捕捉及动画后处理技巧。通过计算流体力学(CFD)方法,帮助工程师和研究人员高效模拟圆柱绕流现象,优化工程设计。

weixin_29309785的博客 414

利用Hive中concat_ws函数将多行记录合并成一行

创建测试表 CREATE TABLE IF NOT EXISTS TEST.USERS ( id string, k1 string, k2 string, k3 string ) COMMENT '用户表' ROW FORMAT delimited fields terminated BY '\t' STORED AS TEXTFIL...

福州大数据 hadoop学习 1435

模拟波束赋形 vs 数字波束赋形:5G天线设计中的成本与性能权衡

本文深入剖析了5G天线设计中模拟波束赋形与数字波束赋形的核心差异,重点探讨了二者在硬件成本、功耗、网络覆盖能力和频谱效率等方面的权衡。文章指出,模拟方案成本低但灵活性有限,数字方案性能强大但代价高昂,而混合波束赋形已成为主流折中方案。决策需紧密结合具体的部署场景、性能要求和总拥有成本进行综合考量。

weixin_28432777的博客 840

告别卡顿!OBS Studio最佳录制参数设置指南(适合游戏/网课/会议场景)

本文提供OBS Studio录制参数优化指南,针对游戏、网课及会议三大场景,详细解析帧率、码率与编码器设置。重点推荐利用硬件编码器(如NVENC)实现游戏录制零卡顿,并分享清晰稳定的网课录制与长时间会议录制配置方案,助你告别视频卡顿与音画不同步问题。

e4f5g6h7的博客 1330

Hive多行转多列,多列转多行

Hive多行转多列,多列转多行

weixin_44870066的博客 5586

Java实战:用Proj4j搞定WGS84与CGCS2000坐标互转(附完整代码)

本文详细介绍了如何使用Java库Proj4j实现WGS84与CGCS2000坐标系之间的高精度转换。通过七参数转换模型和格网改正量文件,提供完整的代码实现和项目配置指南,帮助开发者快速集成到地理信息系统项目中,提升坐标转换效率和精度。

weixin_29251567的博客 826

【Hive】函数 concat 、concat_ws 、concat_group 的区别

文章目录一、CONCAT()函数二、CONCAT_WS函数三、GROUP_CONCAT()函数四、CONCAT_WS(SEPARATOR ,collect_set(column)) ===>GROUP_CONCAT()函数 一、CONCAT()函数 CONCAT()函数用于将多个字符串连接成一个字符串。 使用数据表Info作为示例,其中SELECT id,name FROM info LIM...

云祁QI 2545

5分钟搞定阿里云千问大模型API申请:手把手教你获取API Key

本文提供了一份高效的阿里云通义千问大模型API Key获取实战指南。通过清晰的步骤,帮助开发者在五分钟内完成从账号准备、精准导航控制台到创建并验证API Key的全过程,并强调了密钥安全管理和基础调用测试的重要性,助力快速集成AI能力。

ol789012345的博客 1338

[RK3568 Android12] 添加自定义启动脚本

1:定义添加的脚本 2:rk3568_s.mk 中定义打包 3:在启动脚本中init.rk356x.rc添加权限及何时启动 4:添加权限文件file_contexts 5:系统确认是否运行

OpenWrt/WLAN/驱动/Android/嵌入式开发总结 2219

Hive SQL中的concat、concat_ws、concat_group&列转行,行转列

目录1、concat函数,concat_ws函数,concat_group函数CONCAT() 函数2、CONCAT_WS(SEPARATOR ,collect_set(column)) 等价于 GROUP_CONCAT()3、Hive之列转行,行转列列转行行转列 1、concat函数,concat_ws函数,concat_group函数 hivesql中的concat函数,concat_ws函数,concat_group函数之间的区别 CONCAT() 函数 CONCAT()函数用于将多个字符串连接成一个

奔赴彼岸 9899

ESD防护设计宝典(十):RE(辐射发射)超标问题排查与解决

RE测试是EMC认证的“头号杀手”。当屏幕上出现一根根超标频谱线时,如何快速定位元凶并有效整改?本讲将带你化身电磁侦探,完成一次完美的RE问题“缉凶”。

m0_56451176的博客 391

Hive中将数据一行转多行、多行转一行、再转为以逗号分隔的string类型

Hive中将数据一行转多行、多行转一行、再转为以逗号分隔的string类型 背景 表content中有观看内容id(content_id),内容标签id列表(tag_id_list),如下所示: content_id tag_id_list 1 1000,1001,1002 2 1000,1003 3 1002,1003 4 1002,1004 表id_decode中有内容标签id(tagid),内容标签中文(tagname),如下所示: tagid tagname

some_apples的博客 5080

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

hive中的拼接函数(concat,group_concat,concat_ws,collect_set)

1、concat concat() 函数用于将多个字符串连接成一个字符串。 concat(string s1, string s2, string s3,…)表示通过s1、s2和s3连接一起 举例: +----+--------+ | id | name | +----+--------+ | 1 | city | +----+--------+ CONCAT(id,’:’,name) = 1:city 2、concat_ws concat_ws() 指定参数之间的分隔符 concat_ws(s

zll_1234的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[Hive]用concat_w实现将多行记录合并成一行

hive concat_w实现将多行记录合并成一行

个人技术博客 4万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

hive中如何实现group_concat函数

上节说到在mysql中我们很容易使用group_concat(具体用法) 但是在hive中很遗憾的是没有这个函数 那我们如何在不使用UDF函数的情况下使用它呢: 那就是使用hive中自带的collect_list/collect_set加上concat_ws函数 关于collect_list/collect_set的区别请参考下此篇文章 https://blog.youkuaiyun.com/LINBE_blazers/article/details/89198019 直接上实例,先看一下我们的表数据和字段结构 我们

mo 6767

hive中的contact,concat_ws,collect_set(),explode实现行列互转

hive工作中用到的一些拼接函数 1. concat(string s1, string s2, string s3) 这个函数能够把字符串类型的数据连接起来,连接的某个元素可以是列值。 如 concat( aa, ':', bb) 就相当于把aa列和bb列用冒号连接起来了,aa:bb。 2. cast 用法:cast(value as type) 功能:将某个列的值显示的转化为某个类型 例...

仙道Bob的专栏 3万+

SQL实现将多行记录合并成一行

SQL实现将多行记录合并成一行

日常分享数据分析开发、编程语言内容 2万+

Hive concat函数和concat_ws函数和concat_group函数&row_number over()和sum() over()&列转行,行转列

concat函数,concat_ws函数,concat_group函数 hivesql中的concat函数,concat_ws函数,concat_group函数之间的区别 CONCAT()函数 CONCAT()函数用于将多个字符串连接成一个字符串。 使用数据表Info作为示例,其中 SELECT id,name FROM info LIMIT 1;的返回结果为 ±—±-------+ | id ...

缘字诀的博客 8505

hivesql中的concat函数,concat_ws函数,concat_group函数之间的区别

一、CONCAT()函数 CONCAT()函数用于将多个字符串连接成一个字符串。 使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为 ±—±-------+ | id | name | ±—±-------+ | 1 | BioCyc | ±—±-------+ 1、语法及使用特点: CONCAT(str1,str2,…) 返回结果...

weixin_43668299的博客 3199
上一篇: MySQL将以逗号分隔的数据分成多行,再合并为一行
下一篇: PD怎么连接数据库并把表结构导出excel?
Lockin C
博客等级 码龄7年 792粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值