IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 大数据HiveSQL UDTF 函数 explode -> 正文阅读

[大数据]大数据HiveSQL UDTF 函数 explode

1、应用场景

数据准备

provice

category

广东省

南方、经济强省

海南省

热带、旅游、自由贸易

新疆

西北、沙漠、哈密瓜

需求展示:

广东省?? ??? ?? ? 南方
广东省?? ??? ??? ?经济强省
海南省?? ??? ?? ? 热带
海南省?? ??? ??? ?旅游
海南省?? ??? ??? ?自由贸易
新疆?? ??? ??? ???西北
新疆?? ??? ??? ?? 沙漠
新疆?? ??? ??? ??? ?哈密瓜

2、Explode : UDTF 函数, 一个输入多个输出函数【炸裂函数】

功能说明:将 hive 一列中复杂的 Array 或者 Map 结构拆分成多行,即将数据打散。

3、和 lateral view【侧写表】 及 split 结合使用

Hive Lateral View

Apply table generation function, then join the function input and output together(应用表生成功能,将功能输入和输出连接在一起)

  1. 在一个复杂的SQL查询中,可以生成类似于临时的视图一样的功能;
  2. 使用LATERAL VIEW 如果视图是空值的话,那么最终不会有任何输出结果,需要使用 LATERAL VIEW OUT

LATERAL VIEW OUT

  1. will generate the result even output is null (即便输出为空,LATERAL VIEW OUTER 也会生成结果)
  2. 视图为空值,也会展示全部的结果

EXPLODE 函数的用法:

  1. 参数:接受的是一个集合
  2. 返回值:返回集合的每一个元素

使用场景示例:可以基于explode + laterval view 实现词频统计

4、Split: 将字符串分割字符串数组

5、lateral view 为原始表的每行调用UDTF,UDTF会把一行拆分成一或者多行,lateral view 再把结果结合,产生一个支持别名表的虚拟表

create table tmp_provice_category as

select
?? ?provice, category
from
(
?? ?select '广东省' as provice, '南方、经济强省' as category
?? ?union all
?? ?select '海南省' as provice, '热带、旅游、自由贸易' as category
?? ?union all
?? ?select '新疆' as provice, '西北、沙漠、哈密瓜' as category
)

执行以下SQL:

select provice, category from tmp_provice_category

结果:

provice????category
新疆????   西北、沙漠、哈密瓜
海南省???? 热带、旅游、自由贸易
广东省???? 南方、经济强省
select
????provice, category_name
from
(
????select provice, category from tmp_provice_category
)
lateral view explode (split(category, '、')) table_temp_view as category_name

结果:

provice????category_name
新疆????    西北
新疆????    沙漠
新疆????    哈密瓜
海南省????  热带
海南省????  旅游
海南省????  自由贸易
广东省????  南方
广东省????  经济强省

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 19:06:49  更:2022-06-08 19:06:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:18:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码