摸鱼大数据——Hive函数7-9
7、日期时间函数
Hive函数链接:LanguageManual UDF - Apache Hive - Apache Software Foundation
SimpleDateFormat (Java Platform SE 8 )
current_timestamp: 获取时间原点到现在的秒/毫秒,底层自动转换方便查看的日期格式 常用 to_date: 字符串格式时间戳转日期(年月日) current_date: 获取当前日期(年月日) 常用 year: 获取指定日期时间中的年 常用 month:获取指定日期时间中的月 常用 day:获取指定日期时间中的日 常用 hour:获取指定日期时间中的时 minute:获取指定日期时间中的分 second:获取指定日期时间中的秒 dayofmonth: 获取指定日期时间中的月中第几天 dayofweek:获取指定日期时间中的周中第几天 quarter:获取指定日期时间中的所属季度 weekofyear:获取指定日期时间中的年中第几周 datediff: 获取两个指定时间的差值 常用 date_add: 在指定日期时间上加几天 常用 date_sub: 在指定日期时间上减几天 unix_timestamp: 获取unix时间戳(时间原点到现在的秒/毫秒) 注意: 可以使用yyyyMMdd HH:mm:ss进行格式化转换 from_unixtime: 把unix时间戳转换为日期格式的时间 注意: 如果传入的参数是0,获取的是时间原点1970-01-01 00:00:00
示例:
select`current_date`(), -- 获取当前的日期`current_timestamp`(); -- 获取当前的日期时间
-- to_date:将字符串内容转成日期对象
select to_date("2024-04-25");
select to_date("2024-04-25 16:39:30");
-- 年月日时分秒分别获取
selectyear("2024-04-25 16:39:30") as my_year,month("2024-04-25 16:39:30") as my_month,day("2024-04-25 16:39:30") as my_day,dayofweek("2024-04-25 16:39:30") as dw1, -- 返回值是5。因为周日是1,周日 周一 周二 ... 周六dayofweek("2024-04-28 16:39:30") as dw2, -- 返回值是1。因为周日是1,周日 周一 周二 ... 周六hour("2024-04-25 16:39:30") as my_hour,minute("2024-04-25 16:39:30") as my_minute,second("2024-04-25 16:39:30") as my_second;
-- 日期时间的加减
/*datediff(大的日期,小的日期):计算两个日期的天差值*/
selectdatediff("2024-04-24 16:39:30","2024-04-25 16:39:30") as `差值1`, -- 去公司里面不要用中文datediff("2024-04-24 16:39:10","2024-04-25 16:39:30") as `差值2`, -- 去公司里面不要用中文datediff("2024-03-25 16:39:10","2024-04-25 16:39:30") as `差值3`, -- 去公司里面不要用中文datediff("2023-03-25 16:39:10","2024-04-25 16:39:30") as `差值4`, -- 去公司里面不要用中文date_add("2024-04-25 16:39:30",1) as add1,date_add("2024-04-25 16:39:30",-1) as add2,date_sub("2024-04-25 16:39:30",1) as sub1,date_sub("2024-04-25 16:39:30",-1) as sub2;
-- unix_timestamp:获取当前的时间戳
select unix_timestamp(),`current_timestamp`();
-- from_unixtime:将时间戳转成日期对象
select from_unixtime(1714035105),from_utc_timestamp(1714035105,"PRC");
-- 需求:将这个时间日期4/25/2024 17:08:20变成中国喜欢用的。2024-04-25 17:08:20
-- 旧的日期时间 -> 时间戳 -> 新格式的日期时间
describe function extended unix_timestamp;
describe function extended from_unixtime;
selectunix_timestamp("4/25/2024 17:08:20","M/dd/yyyy HH:mm:ss"),-- 旧的日期时间 -> 时间戳from_unixtime(unix_timestamp("4/25/2024 17:08:20","M/dd/yyyy HH:mm:ss"),"yyyy-MM-dd HH:mm:ss") -- 时间戳 -> 新格式的日期时间

原因: 建表的时候,字段名称或者表名称最好不要和hive中的关键字(系统内部自己用的,例如:create、count、sum、max等)重名 解决办法:1- 推荐取个不一样的名词2- 加上反引号``
use day08; create table tb_test_1(`create` int,`table` int,count int )row format delimited fields terminated by ','; select count(count) from tb_test_1;
8、条件函数
if(参数1,参数2,参数3): if(判断条件,条件成立(true)的时候执行,条件不成立(false)的时候执行)。if可以嵌套 case...when.then...end: 分条件判断 使用推荐: 如果判断比较简单推荐使用if,如果判断条件很多推荐使用case when isnull(数据) : 判断是否为空。如果为空(null值)返回true;否则返回false。 注意: null才是空值。空字符串不是空值 isnotnull(数据): 判断是否不为空。如果为空(null值)返回false;否则返回true。 nvl(数据,参数2): 返回里面第一个不为空的值 coalesce(参数1,参数2...): 返回里面第一个不为空的值
示例:
-- if(判断条件,条件成立(true)的时候执行,条件不成立(false)的时候执行)。if可以嵌套
selectif(20>18,"可以去上网","回家写作业"),if(10>18,"可以去上网","回家写作业"),if(10>18,null,"回家写作业"),if(10>18,"可以去上网",null),if(10>18,"可以去上网",if(10<15,"写小学作业","写初中作业")); -- if嵌套
-- isnull和isnotnull:返回true和false
select isnull(null),isnull("hello"),isnull(123),isnotnull("hello"),isnotnull(null);
-- nvl(字段名,默认值)
select nvl("hello",123),nvl(null,"world"),nvl(19.99,123);
-- coalesce(字段1,字段2,....):返回参数列表中第一个不为空null的值
selectcoalesce("hello","world",123,9.99),coalesce(null,"world",123,9.99),coalesce(null,null,123,9.99),coalesce(null,null,null,9.99),coalesce(null,"world",null,9.99);
-- case when
select1 as today,casewhen 4==1 then "周一"when 4==2 then "周二"when 4==3 then "周三"else "休息"end,
case 4when 1 then "周一"when 2 then "周二"when 3 then "周三"else "休息"end;
9、其他函数
-- hash:使用场景,用来对hive数据进行完整性校验。
select hash("world"); -- 113318802
-- md5
select md5("world"); -- 7d793037a0760186574b0282f2f435e7
select md5(concat_ws("_",cast(1 as string),"zhangshan",cast(18 as string),cast(50000 as string),"广州市"));
select current_user(),current_database(),version();
select sha2("allen",224);
select sha2("allen",512);
相关文章:
摸鱼大数据——Hive函数7-9
7、日期时间函数 Hive函数链接:LanguageManual UDF - Apache Hive - Apache Software Foundation SimpleDateFormat (Java Platform SE 8 ) current_timestamp: 获取时间原点到现在的秒/毫秒,底层自动转换方便查看的日期格式 常用 to_date: 字符串格式时间…...
python连接数据库
python连接MYSQL、postgres、oracle等的基本操作 python连接mysql MySQLdb MySQLdb又叫MySQL-python ,是 Python 连接 MySQL 的一个驱动,很多框架都也是基于此库进行开发,只支持 Python2.x,而且安装的时候有很多前置条件&#…...
能不能接受这些坑?买电车前一定要看
图片来源:汽车之家 文 | Auto芯球 作者 | 雷慢 刚有个朋友告诉我,买了电车后感觉被骗了, 很多“坑”都是他买车后才知道的。 不提前研究,不做功课,放着我这个老司机不请教, 这个大冤种他不当谁当&…...
k8s中pod如何排错?
排除Kubernetes Pod故障通常涉及一系列步骤,以诊断问题并找到解决方案。以下是一些常见的故障排除方法: 检查Pod状态: 使用kubectl get pods查看Pod的状态。如果Pod没有处于Running状态,查看更详细的信息,使用kubectl describe …...
【手撕面试题】Vue(高频知识点二)
每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么&…...
四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型
.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么? 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求,使用自有系统…...
初始C++
感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.引用二.内联函数三.类和对象总结 前言 之前讲c的命令空间和第一个程序的运行,继…...
Chapter 5 Current Mirrors and Biasing Techniques
Chapter 5 Current Mirrors and Biasing Techniques 这一章介绍电流镜 5.1 Basic Current Mirrors MOS工作在饱和区, 表现为一个电流源. 考虑电源变化, PVT波动, 我们会首先产生一路精准电流源, 再复制这路电流. 如何复制呢? 电流转电压再转电流就行了, 如下图所示 考虑到…...
Avalonia Image控件上通过鼠标拖动画出矩形框
注册鼠标事件:首先,你需要注册 Image 控件上的鼠标事件,包括 PointerPressed、PointerMoved 和 PointerReleased。你可以在 XAML 文件或代码中注册这些事件。 <Image PointerPressed"Image_PointerPressed" PointerMoved"…...
Wireshark Lua插件入门
摘要 开发中经常通过抓包分析协议,对于常见的协议如 DNS wireshark 支持自动解析,便于人类的理解,对于一些私有协议,wireshark 提供了插件的方式自定义解析逻辑。 1 动手 废话少说,直接上手。 第一步当然是装上wiresh…...
XXE漏洞简介
目录 漏洞原理 漏洞危害 前置知识 XML简介 DTD简介 DTD的两种声明方式 实体 实体分类 内置实体(Built-inentities) 字符实体(Characterentities) 通用实体(Generalentities) 参数实体(Parameterentities) XXE漏洞…...
小白跟做江科大32单片机之蜂鸣器
1.复制之前编写的工程库项目,详细工程库创建过程如下链接: 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 接线时要用公…...
IsoBench:多模态基础模型性能的基准测试与优化
随着多模态基础模型的快速发展,如何准确评估这些模型在不同输入模态下的性能成为了一个重要课题。本文提出了IsoBench,一个基准数据集,旨在通过提供多种同构(isomorphic)表示形式的问题,来测试和评估多模态…...
MyEclipse使用教程
MyEclipse使用教程如下,按照以下步骤,您可以逐步熟悉并掌握MyEclipse的基本使用: 一、MyEclipse安装与准备 软件准备: 在使用MyEclipse之前,您需要确保已经安装了JDK(Java Development Kit)。J…...
TiDB学习9:Ti Cloud简介
目录 1. 为什么选择TiDB 2. 多租户 3. TiDB架构 4. 什么是TiDB Cloud 5. TiDB Cloud Provider Region 6. TiDB Cloud 入门 6.1 在浏览器中打开TiDB Cloud 6.2 创建您的账户 6.3 Developer Tier 与Dedicated Tier 6.3.1 Developer Tier 6.3.2 Dedicated Tier 6.3.2.…...
JavaScript 创建新节点的方法
在 JavaScript 中,可以使用 document.createElement() 方法来创建新的节点。该方法接受一个字符串参数,表示要创建的节点类型,如 "div"、"p" 等。 创建一个新节点的基本步骤如下: 使用 document.createElem…...
在phpstorm2024版里如何使用Jetbrains ai assistant 插件 ?
ai assistant激活成功后,如图 ai assistant渠道:https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上,Google 为 Android Studio 推出了 Studio Bot 功能,使用了谷歌编码基础模型 Codey,Codey 是…...
进程间通信(27000字超详解)
🌎进程间通信 文章目录: 进程间通信 进程间通信简介 进程间通信目的 初识进程间通信 进程间通信的分类 匿名管道通信 认识管道 匿名管道 匿名管道测试 管道的四种…...
一、大模型推理
https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md 安装 v7.1 https://github.com/hiyouga/LLaMA-Factory/releases/tag/v0.7.1 git clone --depth 1 https://github.com/hiyoug…...
.NET IoC 容器(三)Autofac
目录 .NET IoC 容器(三)AutofacAutofacNuget 安装实现DI定义接口定义实现类依赖注入 注入方式构造函数注入 | 属性注入 | 方法注入注入实现 接口注册重复注册指定参数注册 生命周期默认生命周期单例生命周期每个周期范围一个生命周期 依赖配置Nuget配置文…...
setup-php 故障排除手册:常见问题解决方案与调试技巧
setup-php 故障排除手册:常见问题解决方案与调试技巧 【免费下载链接】setup-php shivammathur/setup-php: 是一个用于安装和配置 PHP 的脚本,可以方便地安装和配置 PHP 环境。适合对 PHP、环境配置和想要实现 PHP 环境配置的开发者。 项目地址: https…...
跨境电商注销店铺能规避美国TRO吗?
SellerAegis卖家守护视角下的“弃店思维”与真实法律后果解析在跨境电商卖家遭遇美国TRO(Temporary Restraining Order,临时限制令)后,最常见的一种想法就是:如果把店铺注销,是不是就可以规避风险ÿ…...
别再只用CPU了!手把手教你用CUDA C++写第一个GPU并行程序(附完整代码)
从零开始:用CUDA C解锁GPU并行计算的实战指南 如果你是一名C开发者,可能已经习惯了在CPU上编写串行代码。但当你面对海量数据计算时,是否曾感到CPU力不从心?现代GPU拥有数千个计算核心,能够同时执行大量线程࿰…...
马年开始杂谈补
总感觉时间越过越快,是不是年纪大了。马年春节9天假期,历史上最长春节,一眨眼就过去了。今年刚开始就发生了很多事,不知福祸。首先是人工智能发展迅速,各种智能体开始出现。美以伊战争,油价狂飙。到了3月&a…...
VisionPro多模板匹配实战:CogPMAlignMultiTool从入门到精通(附完整代码)
VisionPro多模板匹配实战:CogPMAlignMultiTool从入门到精通 在工业视觉检测领域,多模板匹配技术正成为复杂场景下的关键解决方案。当单一模板无法覆盖产品多变的形态时,CogPMAlignMultiTool展现出强大的适应性。本文将带您深入掌握这一工具的…...
【PyO3/Rust-Python测试权威框架】:Rust生态下Python扩展的零信任CI流水线设计
第一章:Python 扩展模块测试Python 扩展模块(如用 C/C、Rust 或 Cython 编写的模块)在提升性能的同时,也引入了跨语言交互的复杂性。对其开展系统性测试,是保障功能正确性、内存安全性和 ABI 兼容性的关键环节。测试环…...
7个实用技巧彻底解决Hugo-PaperMod导航菜单不显示问题
7个实用技巧彻底解决Hugo-PaperMod导航菜单不显示问题 【免费下载链接】hugo-PaperMod A fast, clean, responsive Hugo theme. 项目地址: https://gitcode.com/GitHub_Trending/hu/hugo-PaperMod 在使用Hugo-PaperMod主题搭建个人博客时,导航菜单不显示是最…...
倒立摆背后的控制哲学:为什么LQR能稳住这根‘杆’?用日常现象解析最优控制
倒立摆背后的控制哲学:为什么LQR能稳住这根‘杆’?用日常现象解析最优控制 想象一下骑自行车时微调把手保持平衡的瞬间,或是用手指顶住铅笔不让它倒下的场景。这些看似简单的动作背后,隐藏着与火箭姿态控制、机器人行走相同的数学…...
【大语言模型基础(2)】自注意力与多头机制:QKV、缩放与因果掩码
文章目录摘要1. 为什么需要自注意力2. Q、K、V 到底是什么一个具体例子3. Attention 公式在干什么第一步:计算相似度第二步:做缩放第三步:softmax\mathrm{softmax}softmax 归一化第四步:对 ValueValueValue 做加权平均4. 为什么 G…...
实战应用:基于快马构建多维智能限流系统,精细化管控API访问
在构建现代Web服务时,API限流是保障系统稳定性的重要防线。最近我在处理一个电商平台的流量管控需求时,深刻体会到"rate limit exceeded"不仅是简单的错误提示,更是系统自我保护的关键机制。下面分享如何用InsCode(快马)平台快速搭…...
