Hive 函数(实例操作版2)

news/2024/11/30 0:26:33/

数据脱敏函数

-- 演示数据脱敏函数
-- mask_hash:  返回指定字符串的hash编码
select mask_hash('binzi');-- 拓展
--将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。
select mask("abc123DEF"); -- xxxnnnXXX--自定义替换的字母: 依次为大写小写数字
select mask("abc123DEF",'大','小','数');
select mask("abc123DEF",'/','.','%');--mask_first_n(string str[, int n]
--对前n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_first_n("abc123DEF",6);--mask_last_n(string str[, int n])
--对后n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_last_n("abc123DEF",6);--mask_show_first_n(string str[, int n])
--除了前n个字符,其余进行掩码处理
select mask_show_first_n("abc123DEF",6);--mask_show_last_n(string str[, int n])
select mask_show_last_n("abc123DEF",6);

加密函数

--取哈希值函数:hash
select hash("binzi"); -- 93742710--MD5加密: md5(string/binary)
select md5("binzi"); -- 32位   072853027b387fcf891a610137f8dc1b
select length('072853027b387fcf891a610137f8dc1b');--SHA-1加密: sha1(string/binary)
select sha1("binzi"); -- 40位 66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9
select length('66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9');--SHA-2家族算法加密:sha2(string/binary, int)  (SHA-224, SHA-256, SHA-384, SHA-512)
select sha2("binzi",224);
select sha2("binzi",512);--crc32加密:
select crc32("binzi"); -- 3221865747

炸裂函数

把一个容器的多个数据炸裂出单独展示:  explode(容器)

    

炸裂函数配合侧视图使用格式:

select 原表别名.字段名,侧视图名.字段名 from 原表 原表别名 lateral view explode(要炸开的字段) 侧视图名 as 字段名 ;

-- 切水果实战练习
-- 已知字符串'苹果-香蕉-西瓜-哈密瓜-火龙果-榴莲'要求切割放到容器中
select '苹果-香蕉-西瓜-哈密瓜-火龙果-榴莲';
select split('苹果-香蕉-西瓜-哈密瓜-火龙果-榴莲', '-');-- UDTF: 一进多出
select explode(array('binzi', '666', '888'));
select explode(map('a', 1, 'b', 2, 'c', 3));-- 演示炸裂函数示例(一进多出)
-- 查看指定函数详细扩展信息(有对应示例)
desc function extended explode;-- 已知array容器中"苹果","香蕉","西瓜","哈密瓜","火龙果","榴莲"要求炸开
select explode(array("苹果", "香蕉", "西瓜", "哈密瓜", "火龙果", "榴莲"));

实例

数据文件👉The_NBA_Championship.txt

--建表
create table the_nba_championship(team_name string,champion_year array<string>
) row format delimited
fields terminated by ','
collection items terminated by '|';--加载数据文件到表中  先上传到hdfs/source目录
load data  inpath '/source/The_NBA_Championship.txt' into table the_nba_championship;--验证
select * from the_nba_championship;-- 只查询冠军年份
select explode(champion_year) as year from the_nba_championship ;-- 配合侧视图完成需求
with tmp as(select  a.team_name,b.yearfrom the_nba_championship alateral view explode(champion_year) b as year)
select * from tmp;

行列转换

行转列

collect_set(字段名): 把多个数据收集到一起,默认去重
collect_list(字段名): 把多个数据收集到一起,默认不去重
把多个子串用指定分隔符拼接成一个大字符串: concat_ws(分隔符,多个数据...)      注意: 如果拼接数据不是字符串可以使用cast转换

--建表
create table row2col2(col1 string,col2 string,col3 int
)row format delimited fields terminated by '\t';--加载数据到表中(按照图中数据在DataGrip可视化界面添加)
select * from row2col2;需求1: 把原表数据变成以下格式
a b [1,2,3]
c d [4,5,6]selectcol1,col2,collect_list(col3)
fromrow2col2
group bycol1, col2;需求2: 把原表数据变成以下格式
a b '1-2-3'
c d '4-5-6'selectcol1,col2,concat_ws('-',collect_list(cast(col3 as string)))
fromrow2col2
group bycol1, col2;


http://www.ppmy.cn/news/1551041.html

相关文章

Epipolar-Free 3D Gaussian Splatting for Generalizable Novel View Synthesis 论文解读

目录 一、概述 二、相关工作 1、单场景3DGS 2、跨场景生成3DGS 3、几何方法解决3D任务 三、eFreeSplat 1、预训练跨视角模块 2、无外极线跨视角交互感知模块 3、迭代跨视角高斯对齐 4、高斯参数预测 一、概述 该论文设计了一种不依赖于极线约束的情况实现可推广的新视…

力扣第 72 题 编辑距离

一、题目描述 给你两个单词 word1 和 word2&#xff0c;请返回将 word1 转换为 word2 所使用的最少操作数。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符&#xff1b;删除一个字符&#xff1b;替换一个字符。 二、解题思路 1. 问题分析 这是一个最优子结构…

Chrome://常用的内部页面地址

Chrome浏览器提供了一系列特殊的内部页面来用于开发和调试&#xff0c;可以通过在地址栏中输入以chrome://开头的协议来访问。 这些页面用于各种高级设置、实验性功能、诊断信息和浏览器工具等。 一些常用的内部页面&#xff1a; 协议用途chrome://settings/打开Chrome的设置…

量化交易系统开发-实时行情自动化交易-8.1.TradingView平台

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来会对于TradingView平台介绍。 T…

C# 常量

文章目录 前言一、整数常量&#xff08;一&#xff09;合法与非法实例对比&#xff08;二&#xff09;不同进制及类型示例 二、浮点常量三、字符常量四、字符串常量五、定义常量 前言 在 C# 编程的世界里&#xff0c;常量是一类特殊的数据元素&#xff0c;它们如同程序中的 “定…

SpringBoot连接测试InfluxDB时序数据库

1&#xff09;创建一个Springboot项目&#xff0c;在pom.xml引入influxDB相关的包 <!-- influxdb --><dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-stdlib</artifactId><version>1.8.10</version>…

【ANC系统】主动噪声控制系统结构分类

1. 根据是否获取参考信号划分 前馈 ANC 系统&#xff08;Feedforward ANC&#xff09; 原理&#xff1a;前馈 ANC 系统的基本工作原理是利用参考信号来生成反噪声。参考信号通常是由传感器检测到的“初级噪声”信号&#xff0c;系统在噪声发生之前就进行干预。参考信号通常是直…

从 App Search 到 Elasticsearch — 挖掘搜索的未来

作者&#xff1a;来自 Elastic Nick Chow App Search 将在 9.0 版本中停用&#xff0c;但 Elasticsearch 拥有你构建强大的 AI 搜索体验所需的一切。以下是你需要了解的内容。 生成式人工智能的最新进展正在改变用户行为&#xff0c;激励开发人员创造更具活力、更直观、更引人入…