摸鱼大数据——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配置文…...
Phi-3-mini-4k-instruct与Vue3前端框架集成实战
Phi-3-mini-4k-instruct与Vue3前端框架集成实战 1. 引言 前端开发正在经历一场智能化变革,传统的静态页面已经无法满足用户对个性化、智能化交互的需求。想象一下,如果你的Vue3应用能够理解用户意图、自动生成内容、提供智能建议,那会是怎样…...
Sentinel-2 Level-2A数据怎么用?从QA60波段解读到实战:去云、计算NDVI/ARVI并导出GeoTIFF
Sentinel-2 Level-2A数据实战指南:从QA60波段解析到植被指数计算全流程 当第一次打开Sentinel-2 Level-2A数据时,很多研究者会被那些看似晦涩的质量波段搞得一头雾水。记得我刚开始处理这些数据时,就曾因为忽略了QA60波段的重要性,…...
GuwenBERT:古文理解的新纪元,让AI读懂千年典籍的智慧
GuwenBERT:古文理解的新纪元,让AI读懂千年典籍的智慧 【免费下载链接】guwenbert GuwenBERT: 古文预训练语言模型(古文BERT) A Pre-trained Language Model for Classical Chinese (Literary Chinese) 项目地址: https://gitcod…...
DeepSeek-VL2微调报错“AssertionError”终极解决:修改config.json里的topk_method参数
DeepSeek-VL2微调报错"AssertionError"终极解决方案:深入解析topk_method参数 当你满怀期待地准备微调DeepSeek-VL2这个强大的多模态大模型时,却在训练启动阶段遭遇了令人沮丧的"AssertionError"和"assert not self.training&q…...
达摩院春联生成模型实战:输入两字祝福词,自动生成上下联和横批
达摩院春联生成模型实战:输入两字祝福词,自动生成上下联和横批 1. 春联生成模型简介 1.1 模型核心功能 达摩院AliceMind团队开发的春联生成模型是一款基于PALM大模型的专用AI工具,它能将简单的两字祝福词转化为完整的春联作品。这个模型特…...
3分钟免费制作AI视频:零基础也能成为数字导演
3分钟免费制作AI视频:零基础也能成为数字导演 【免费下载链接】auto-video-generateor 自动视频生成器,给定主题,自动生成解说视频。用户输入主题文字,系统调用大语言模型生成故事或解说的文字,然后进一步调用语音合成…...
Tauri开发手记——1.从零到一:环境搭建与首次构建实战
1. 环境准备:从零搭建Tauri开发环境 第一次接触Tauri开发时,环境搭建往往是最让人头疼的环节。作为一个跨平台桌面应用框架,Tauri需要同时处理前端和后端(Rust)的依赖关系。我在Windows系统上踩过不少坑,现…...
游戏开发必备:Unity中三维坐标系转换的5种实战技巧(附代码)
Unity三维坐标系转换实战指南:从原理到代码实现 在游戏开发中,三维物体的旋转和坐标系转换是构建沉浸式体验的核心技术。无论是角色转向、镜头跟随还是物理模拟,开发者都需要精准控制物体在三维空间中的方位。Unity作为主流游戏引擎ÿ…...
MWGA 双线编译技术方案:一份代码,双端生成
核心技术原理MWGA 的双线编译基于模块化架构与跨平台编译引擎,实现「一份代码,双向生成」。代码分层: 将代码划分为核心业务逻辑层与端侧 UI 适配层。核心层包含数据模型、算法、权限校验等通用功能,纯 C# 编写且不依赖端侧 API&a…...
告别转换限制:实测可免费批量处理Geojson、Shapefile与KML的在线工具指南
1. 为什么你需要这个免费批量转换工具? 作为一个经常处理地理信息数据的老手,我太懂你们遇到的痛点了。上周帮学弟改毕业论文,他用的那个知名在线转换工具,刚传了第4个文件就弹出"本月免费额度已用完"——这哪够用啊&am…...
