hive中的lateral view结合udtf函数的使用解决生产问题
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,===============================================================================create table psn(
千家信息网最后更新 2025年01月23日hive中的lateral view结合udtf函数的使用解决生产问题
===============================================================================create table psn( id int, name string, likes array, address map)partitioned by (age int)row format delimitedfields terminated by '\t'collection items terminated by '-'map keys terminated by ':'lines terminated by '\n'; ====================================================================================hive> load data local inpath '/root/a.txt' overwrite into table psn partition(age=10);Loading data to table default.psn partition (age=10)OKTime taken: 3.817 seconds=================================================================================hive> select * from psn;OK1 zhang3 ["sing","tennis","running"] {"beijing":"daxing"} 102 li4 ["sing","pingpong","swim"] {"shanghai":"baoshan"} 103 wang5 ["read","joke","football"] {"guangzou":"baiyun"} 10==============================================================================需求: 一次性统计每种爱好出现了多少次,每个城市出现了多少次,每个区出现多少次。分析: 这个需求有点像hive实现wordcount案例,或者说它就是两个wc案例的聚合,只不过现在这个不用split。 在wc案例中,我们使用explode完美地解决了一列记录wc操作。 但是在hive中的udtf函数(split/explode)中,select子句只能单独出现一个udtf函数,且udtf函数不能与其它字段和函数一并使用。 #####只能select explode(..) from emp; #####不能select explode(..), explode(..) from emp; #####不能select id,explode(..) from emp; 这就会造成对于一些复杂逻辑就会出现无法处理的问题,就比如以上这个两列记录的wc操作。 这时候就需要用到lateral view了,它可以将udtf函数产生的多行结果组织成一张虚拟表。===================================================================================hive> select count(distinct c1),count(distinct c2),count(distinct c3)from psn >lateral view explode(likes)t1 as c1 >lateral view explode(address)t2 as c2,c3;#####t1和t2为经过udtf函数产生的虚拟表的表名,c1/c2/c3为字段别名#####数组经过explode会产生一列数据,map集合产生两列。Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 12019-04-24 22:59:16,471 Stage-1 map = 0%, reduce = 0%2019-04-24 22:59:25,681 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.76 sec2019-04-24 22:59:36,268 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 4.15 secMapReduce Total cumulative CPU time: 4 seconds 150 msecEnded Job = job_1556088929464_0004MapReduce Jobs Launched: Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 4.15 sec HDFS Read: 14429 HDFS Write: 105 SUCCESSTotal MapReduce CPU Time Spent: 4 seconds 150 msecOK8 3 3Time taken: 35.986 seconds, Fetched: 1 row(s)=============================================================================
函数
案例
字段
需求
问题
复杂
一次性
不用
两个
别名
只不过
城市
子句
就是
数据
数组
是在
结果
逻辑
多行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全横幅签字活动
事业单位软件开发报价
车载网络技术实训报告总结
灵瑞网络技术有限公司 电话
阿里云国外服务器怎么样
手游nba2k20为什么连接不了服务器
2021金盾信安杯网络安全大赛
高温网络安全保障
Orical数据库
软件开发国内和日企
公安网络安全标准
邯郸优创软件开发有限公司
台州软件开发厂家
db2回滚的时候突然服务器崩溃
杭州net软件开发报价
现货金融软件开发制作
云南省酒店软件开发有限公司
我的世界禁忌之城服务器
服务器怎么配置端口
网络安全生态市国家的新内涵
vac安全服务器启动项验证
国家网络安全产业园在什么地方
国际邮件服务器软件大全
军校的网络安全与执法
世界之窗下载软件开发
软件开发在线教育平台
迅雷下载ftp服务器
济南检测软件开发
云服务器安全防护措施有哪些
服务器u盘怎么装系统