摸鱼大数据——Hive函数4-6

4、类型转换函数

类型转换: cast(字段名称 as 想要的数据类型)

示例:

-- 数据类型转换
-- string->int
select cast("123" as int),"123";
​
-- string->float/double
select cast("123.555" as float),"123.555";
​
-- int->float/double
select cast(2 as float);
​
-- float/double->int:只保留整数位
select cast(2.999 as int);
​
-- 异常的
select cast("hello" as int); -- 返回null值
select cast("hello" as double);

5、数据脱敏函数

mask_hash: 返回数据的Hash
mask: 默认将大写字母变成X,小写字母变成x,数值变成n。自定义替换的内容。第一个是大写字母,第二个是小写字母,第三个是数值
​
mask_first_n: 对指定的前n个内容进行加密
mask_last_n: 对指定的后n个内容进行加密
mask_show_first_n: 除了指定的前n个内容不进行加密,其他内容全部加密
mask_show_last_n: 除了指定的后n个内容不进行加密,其他内容全部加密

示例:

-- mask_hash:返回数据的Hash
select mask_hash("ABC123def");
​
-- mask:将大写字母变成X,小写字母变成x,数值变成n
select mask("ABC123def"); -- XXXnnnxxx
-- 自定义替换的内容。第一个是大写字母,第二个是小写字母,第三个是数值
select mask("ABC123def","#","*","$"); -- ###$$$***
select mask(cast(13545678912 as string),"#","$","*"); -- ***********
​
-- mask_first_n:对指定的前n个内容进行加密
select mask_first_n("ABC123def",4);
select mask_first_n("ABC123def",4,"#","*","$");
​
describe function extended mask_first_n;
​
-- mask_last_n:对指定的后n个内容进行加密
select mask_last_n("ABC123def",4);
select mask_last_n("ABC123def",4,"#","*","$");
​
-- mask_show_first_n:除了指定的前n个内容不进行加密,其他内容全部加密
select mask_show_first_n("ABC123def",4);
select mask_show_first_n("ABC123def",4,"#","*","$");
​
-- mask_show_last_n:除了指定的后n个内容不进行加密,其他内容全部加密
select mask_show_last_n("ABC123def",4);
select mask_show_last_n("ABC123def",4,"#","*","$");

6、字符串函数

字符串常见的函数:
concat: 将字符串拼接到一起,并且中间没有任何的拼接符号
​
concat_ws: 将字符串以指定的拼接符号拼接到一起
注意: concat_ws只支持对string或者array<string>进行拼接,不支持对数值类型进行拼接
​
length: 获取字符串的长度
注意: length不支持对数值类型获取长度
​
lower: 将字符串全部变成小写
upper: 将字符串全部变成大写
​
trim: 将字符串前后两端的空白字符去掉
注意: 去除前后的空白内容(例如:空格、制表符)。中间的去除不了
​
拓展字符串函数
substr: 截取字符串
replace: 替换字符串
regexp_replace: 正则方式替换字符串
parse_url: 解析网站URL
get_json_object: 解析json字符串

示例:

-- concat:拼接任意类型的内容
select concat("hello","world") as new_str; -- helloworld
select concat("hello",222) as new_str;
select concat(1.99,222) as new_str;
​
-- concat_ws(指定的符号,字段1,字段2...):以指定的符号对内容进行拼接
select concat_ws("_","hello","world","spark","hive") as new_str; -- hello_world_spark_hive
select concat_ws("_","hello",222) as new_str;
select concat_ws("_",1.99,222) as new_str;
​
-- length:获取字符串长度
select length("hello");
-- 只能传递一个参数
select length("hello","world");
select length(123);
​
-- lower:全部转小写
select lower("HELLO");
-- 只能传递一个参数
select lower("hello","world");
-- upper:全部转大写
select upper("hello");
​
-- trim:去除前后的空白内容(例如:空格、制表符)。中间的去除不了
select trim("   hello ");
select concat("111","   hel lo ","2222"),concat("111",trim("   hel lo "),"2222");
​
/*
    substr(字段名称,截取开始的索引,[截取的长度]):字符串截取
        截取开始的索引:有正数索引(从1开始)和负数索引(从-1开始)
        截取的长度:可以不指定,默认截取到最后
 */
select substr("abcdefg",2); -- bcdefg
select substr("abcdefg",2,1); -- b
select substr("abcdefg",-2);
select substr("abcdefg",-5,2);
​
select substr("2024-12-12 10:10:10",1,4);
-- 获取当前日期
select current_date();
select substr(`current_date`(),1,4);
​
-- replace(字段名称,被替换的内容,替换的内容):替换字符串
select replace("你TMD哦","TMD","***");
describe function extended replace;
​
-- regexp_replace(字段名称,正则表达式,替换的内容):通过正则表达式找到目标,然后替换字符串
select regexp_replace("你TMD哦","TMD","***");
select regexp_replace("67869黑马234你好5687","\\d+","***");
describe function extended regexp_replace;
​
-- parse_url(url,解析的内容):解析url地址
-- 注意:解析的内容中必须严格按照函数要求写对应的内容,不能随便写
select parse_url("https://www.baidu.com/s?ie=UTF-8&wd=asd","host"); -- 错误写法
select parse_url("https://www.baidu.com/s?ie=UTF-8&wd=asd","HOST"); -- 正确写法。www.baidu.com
select parse_url("https://www.baidu.com/s?ie=UTF-8&wd=asd","PATH"); -- /s,是uri统一资源定位符
select parse_url("https://www.baidu.com/s?ie=UTF-8&wd=asd","QUERY"); -- ie=UTF-8&wd=asd
select parse_url("https://www.baidu.com/s?ie=UTF-8&wd=asd","QUERY","wd"); -- 获取具体的查询内容
describe function extended parse_url; -- Parts: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO
​
-- get_json_object
/*
 {
    "name":"zhangshan",
    "age":18
 }
 */
select get_json_object('{"name":"zhangshan","age":18}',"$.name");
select get_json_object('{"name":"zhangshan","age":18}',"$.age");
​
-- 嵌套json的解析
select get_json_object('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}',"$.addr.province");

concat_ws可能出现的错误:

原因:concat_ws只支持对string或者array<string>进行拼接,不支持对数值类型进行拼接

length可能遇到的错误:

原因: length不支持对数值类型获取长度

substr中正数索引和负数索引的编号:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/667758.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

绘画智能体分享

这是您请求的故宫雪景图&#xff0c;角落有一只可爱的胖猫&#xff0c;采用了水墨画风格&#xff0c;类似于张大千的作品。希望您喜欢这幅画&#xff01; &#x1f3a8; 选项 1【转变风格】——将这幅画转变为梵高的后印象派风格&#xff0c;增添一些梵高特有的笔触和色彩。 &…

【算法】位运算算法——消失的两个数字(困难)

题解&#xff1a;消失的两个数字(位运算算法) 目录 1.题目2.题解3.示例代码如下4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 本题要求时间复杂度O(N),空间复杂度O(1),分别否了我们 排序遍历 和 哈希数组 的想法。想要在规定时间/空间复杂度内完成本题&#xff0c;需要借…

FreeRTOS实时系统 在任务中增加数组等相关操作 导致单片机起不来或者挂掉

在调试串口任务中增加如下代码&#xff0c;发现可以用keil进行仿真&#xff0c;但是烧录程序后&#xff0c;调试串口没有打印&#xff0c;状态灯也不闪烁&#xff0c;单片机完全起不来 博主就纳了闷了&#xff0c;究竟是什么原因&#xff0c;这段代码可是公司永流传的老代码了&…

戴尔向“数”而行,以“质”致远,做新质生产力的躬耕者

【全球存储观察 &#xff5c; 热点关注】 自1984年戴尔成立&#xff0c;一路走来&#xff0c;戴尔科技集团40年长期持续的技术创新&#xff0c;一直引领全球科技行业的技术趋势。 到如今&#xff0c;AIGC风行一时&#xff0c;在重塑千行百业的同时&#xff0c;也加速了科技行业…

解决安装 WP Super Cache 插件提示 Advanced-Cache.Php 是另一个插件创建的

昨天晚上一个站长求助明月&#xff0c;说是安装 WP Super Cache 插件的时候提示 advanced-cache.php 被占用了&#xff0c;无法完成安装&#xff0c;收到截图看了才明白原来提示的是“advanced-cache.php 文件&#xff0c;由另一个插件或者系统管理员创建的”&#xff0c;如下图…

java属性重写

介绍 关于&#xff0c;属性没有重写只能是编译类型的 代码 package b;public class main_ {public static void main(String[] args) {//向上转型&#xff0c;父类的引用转向了子类的fathetr fatnew son();System.out.println("编译类型是father时的sum属性是"fat.…

如何理解央行买卖国债?

浙商证券覃汉认为&#xff0c;央行对长债的风险持续关注&#xff0c;30年国债收益率较难突破2.5%&#xff0c;区间底部已经多次印证&#xff0c;在学习效应影响下&#xff0c;长端利率预计继续以震荡调整为主。 1、央行买卖国债的政策要求、历史经验、优势 2023年中央金融工作…

实现音乐创作梦想的利器——Cockos Reaper for Mac/win

在当今数字音频制作领域&#xff0c;专业人士和业余爱好者都在寻找一款功能强大、易于操作的软件来实现他们的音乐创作梦想。而Cockos Reaper作为一款跨平台的数字音频工作站软件&#xff0c;既适用于Mac系统&#xff0c;也适用于Windows系统&#xff0c;成为众多音乐制作人心目…

每日一题——Python实现PAT乙级1020 月饼(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 专业点评&#xff1a; 时间复杂度分析&#xff1a; 空间复杂度分析&#…

小邪大佬最新版微信hook

目前小邪大佬已经更新到最新版本微信hook了。 /发送文件 BOOL SendCdnFilePbMsg(string sendId, string cdnkey, string aes_key,string file_name,string md5, int size, string syncKey) {FileMessage sfm;sfm.set_file_id(cdnkey);sfm.set_size(size);sfm.set_aes_key(aes_…

【计算机毕业设计】基于SSM++jsp的在线云音乐系统【源码+lw+部署文档】

目录 摘 要 ABSTRACT 第1章 绪论 1.1背景及意义 1.2 国内外研究概况 1.3 研究的内容 第2章 相关技术 2.1 JSP技术介绍 2.2 JAVA简介 2.3 MyEclipse开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 2.6 SSM三大框架 第3章 系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性…

CANDela studio基础使用

ECU Information 可以修改ECU的名称 里面有个Supported Interfaces&#xff0c;可以在CDDT里面选择支持的通讯接口 可以在tools下面新建internface&#xff0c;也可以从其他CDDT文件里面复制过来&#xff0c;复制的时候注意要另外将里面的参数再复制一次。 也可以在这里点击新…

云原生架构相关技术_4.服务网格

1.技术特点 服务网格&#xff08;ServiceMesh&#xff09;是分布式应用在微服务软件架构之上发展起来的新技术&#xff0c;旨在将那些微服务间的连接、安全、流量控制和可观测等通用功能下沉为平台基础设施&#xff0c;实现应用与平台基础设施的解耦。这个解耦意味着开发者无需…

多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出

多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出 目录 多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出…

Ethercat设备 转 成profinet IO协议项目案例

1 案例说明 设置网关采集EtherCAT设备数据把采集的数据转成profinet IO协议转发给其他系统。 2 准备工作 3. 仰科网关。支持采集EtherCAT设备数据&#xff0c;profinet IO协议转发。 4. 电脑。IP设置成192.168.1.198&#xff0c;和网关在同一个网段。 5. 网线、12V电源。 3 …

Qt xml学习之calculator-qml

1.功能说明&#xff1a;制作简易计算器 2.使用技术&#xff1a;qml,scxml 3.项目效果&#xff1a; 4.qml部分&#xff1a; import Calculator 1.0 //需要引用对应类的队友版本 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 1.4 import QtScxml…

shopee签名x-sap-ri、x-sap-sec算法还原

最新版签名&#xff0c;免账号登录成功率百分百&#xff0c;需要可d 两种方式base64 MTQzMDY0OTc3OA QXVndXN0MjItZnF4

内存取证例题及Volatility2.6的使用(含命令详细解析)

文章目录 一、背景二、什么是内存取证&#xff1f;三、参考文章四、工具及题目五、解析1、哪个Volatility配置文件最适合这台机器&#xff1f;拓展1.1 2、获取镜像时有多少个进程在运行&#xff1f;拓展1.2 3、cmd.exe的进程ID是什么&#xff1f;4、最可疑的进程名称是什么&…

轻松实现PDF文件的在线浏览

福昕软件最近发布了一款名为Cloud API的产品&#xff0c;通过几行代码即可轻松实现PDF文件的在线浏览。先一睹为快吧。 简介 先看看产品官网&#xff1a;福昕 Cloud API Cloud API包括两个形态产品&#xff0c;一个是在线的PDF查看工具&#xff0c;叫PDF Embed API,另外一个…

面试题 17.05. 字母与数字(前缀和)

给定一个放有字母和数字的数组&#xff0c;找到最长的子数组&#xff0c;且包含的字母和数字的个数相同。 返回该子数组&#xff0c;若存在多个最长子数组&#xff0c;返回左端点下标值最小的子数组。若不存在这样的数组&#xff0c;返回一个空数组。 示例 1: 输入: ["…