当前位置: 首页 > news >正文

[Hive] 常见函数

文章目录

  • 字符串函数
  • 数值函数
  • 随机函数
  • 日期和时间函数
    • 字符串转时间
  • 聚合函数
  • 数组函数
  • 结构体函数
  • 数组函数
  • 映射函数 map
  • 正则
  • 处理JSON

字符串函数

CONCAT(string1, string2, …):将多个字符串连接成一个字符串。

LENGTH(string):返回字符串的长度。

LOWER(string):将字符串转换为小写。

UPPER(string):将字符串转换为大写。

TRIM(string):去除字符串两端的空格。

SUBSTR(string, start, length):从字符串中提取子字符串,从指定的起始位置开始,指定长度。

REPLACE(string, search, replace):替换字符串中的指定子字符串。

REGEXP_REPLACE(string, pattern, replace):使用正则表达式替换字符串中的匹配项。

SPLIT(string, delimiter):将字符串按指定分隔符拆分为数组。

INSTR(string, substring):返回子字符串在字符串中第一次出现的位置。

LIKE(string, pattern):判断字符串是否与指定模式匹配(支持通配符)。

RTRIM(string):去除字符串末尾的空格。

LTRIM(string):去除字符串开头的空格。

CONCAT_WS(separator, string1, string2, …):将多个字符串使用指定的分隔符连接成一个字符串。

INITCAP(string):将字符串的首字母大写。


数值函数

ABS(x):返回数值的绝对值。

ROUND(x, d):将数值四舍五入到指定的小数位数。

CEIL(x):向上取整。

FLOOR(x):向下取整。


随机函数

rand():生成一个 0 到 1 之间的随机浮点数。

随机取出一张表的10条数据
select * from t1 order by rand() limit 10

randn():生成一个符合标准正态分布(均值为 0,标准差为 1)的随机浮点数。
rand_seed(n):使用给定的种子值 n 来初始化随机数生成器,从而产生可重复的随机数序列。
rand_integer(n):生成一个 0 到 n-1 之间的随机整数。
rand_array(n, expr):生成一个包含 n 个元素的数组,每个元素的值由表达式 expr 决定。


日期和时间函数

CURRENT_DATE():返回当前日期。

CURRENT_TIMESTAMP():返回当前时间戳。

YEAR(date):返回日期中的年份。

MONTH(date):返回日期中的月份。

DAY(date):返回日期中的天数。

DATEDIFF(enddate, startdate):返回两个日期之间的天数差异。

DATE_ADD(startdate, num_days):将指定数量的天数添加到给定日期中。

DATE_SUB(startdate, num_days):从给定日期中减去指定数量的天数。

文章目录

  • 字符串函数
  • 数值函数
  • 随机函数
  • 日期和时间函数
    • 字符串转时间
  • 聚合函数
  • 数组函数
  • 结构体函数
  • 数组函数
  • 映射函数 map
  • 正则
  • 处理JSON

字符串转时间

TO_DATE(string, format):将字符串转换为日期类型。format 参数指定字符串的日期格式。

TO_TIMESTAMP(string):将字符串转换为时间戳类型。

UNIX_TIMESTAMP(string, format):将字符串转换为 Unix 时间戳。format 参数指定字符串的日期格式。

FROM_UNIXTIME(unix_time, format):将 Unix 时间戳转换为指定格式的时间字符串。

日期格式的模式包括以下常用的符号:

  • yyyy:四位数的年份。
  • MM:两位数的月份(01-12)。
  • dd:两位数的日期(01-31)。
  • HH:24 小时制的小时数(00-23)。
  • mm:分钟数(00-59)。
  • ss:秒数(00-59)。

以下是一些示例

‘2023-10-25’ 的格式为 ‘yyyy-MM-dd’。
‘10/25/23’ 的格式为 ‘MM/dd/yy’。
‘2023-10-25 15:30:45’ 的格式为 ‘yyyy-MM-dd HH:mm:ss’。
‘25-Oct-23’ 的格式为 ‘dd-MMM-yy’。


聚合函数

SUM(column):计算列的总和。

AVG(column):计算列的平均值。

MAX(column):返回列的最大值。

MIN(column):返回列的最小值。

COUNT(column):计算非空行的数量。

进阶聚合函数

GROUP_CONCAT(expr[, sep]):将分组内的多个值连接成一个字符串,并可以指定分隔符。

COLLECT_LIST(expr):返回分组内的所有值作为一个数组。

COLLECT_SET(expr):返回分组内的所有唯一值作为一个集合。

FIRST(expr):返回分组内的第一个非空值。

LAST(expr):返回分组内的最后一个非空值。

PERCENTILE(expr, p):计算分组内的某个百分位数。

STDDEV(expr):计算分组内值的标准差。

VARIANCE(expr):计算分组内值的方差。


数组函数

SIZE(array):返回数组的大小。

ARRAY_CONTAINS(array, value):检查数组是否包含指定的值。

EXPLODE(array):将数组展开为多行。

array_intersect(arr1, arr2) 函数来判断两个数组是否存在交集。该函数将返回两个数组中共有的元素组成的一个新数组。


结构体函数

STRUCT(col1, col2, …):创建一个结构体。

col_name.field_name:访问结构体中的字段。


数组函数

ARRAY(col1, col2, …):创建一个数组。

SIZE(array):返回数组的大小。

ELEMENT_AT(array, index):返回数组中指定索引位置的元素。

EXPLODE(array):将数组展开为多行。

ARRAY_CONTAINS(array, value):检查数组是否包含指定的值。


映射函数 map

MAP(key1, value1, key2, value2, …):创建一个映射。

MAP_KEYS(map):返回映射中的所有键。

MAP_VALUES(map):返回映射中的所有值。

GET_JSON_OBJECT(json_string, path):从 JSON 字符串中提取指定路径的值。
复杂数据类型转换函数:

STRUCT_TO_MAP(struct):将结构体转换为映射。

MAP_TO_STRUCT(map):将映射转换为结构体。


文章目录

  • 字符串函数
  • 数值函数
  • 随机函数
  • 日期和时间函数
    • 字符串转时间
  • 聚合函数
  • 数组函数
  • 结构体函数
  • 数组函数
  • 映射函数 map
  • 正则
  • 处理JSON


正则

Hive 的正则表达式函数使用的是 Java 的正则表达式语法。

REGEXP_EXTRACT(string, pattern, index):从字符串中使用正则表达式模式提取匹配的子字符串。index 参数用于指定提取的子字符串索引。

regexp_extract_all(str, regexp[, index]) 函数来返回所有匹配的元素的一个数组

REGEXP_REPLACE(string, pattern, replacement):使用正则表达式模式替换字符串中的匹配项为指定的替换字符串。

REGEXP_SPLIT(string, pattern):根据正则表达式模式将字符串拆分为数组。

RLIKE(string, pattern):检查字符串是否与正则表达式模式匹配,返回布尔值。


处理JSON

GET_JSON_OBJECT(json_string, path):从 JSON 字符串中提取指定路径的值。

JSON_TUPLE(json_string, col1, col2, …):将 JSON 字符串解析为指定的列。

JSON_ARRAY(json_string, col1, col2, …):将 JSON 数组字符串解析为指定的列。

JSON_OBJECT(key1, value1, key2, value2, …):创建一个 JSON 对象。

JSON_SIZE(json_string):返回 JSON 字符串中顶层元素的数量。

JSON_EXTTRACT(json_string, json_path):从 JSON 字符串中提取满足 JSONPath 表达式的值。

相关文章:

[Hive] 常见函数

文章目录 字符串函数数值函数随机函数日期和时间函数字符串转时间 聚合函数数组函数结构体函数数组函数映射函数 map正则处理JSON 字符串函数 CONCAT(string1, string2, …):将多个字符串连接成一个字符串。 LENGTH(string):返回字符串的长度。 LOWER…...

Mac用NTFS文件夹读写NTFS硬盘 NTFS能复制多大的文件

Mac作为一款备受欢迎的计算机操作系统,具备了许多令人惊叹的功能和特性。然而,对于一些Mac用户来说,使用NTFS格式的硬盘可能存在一些疑问。他们可能想知道Mac是否能够读写NTFS格式的硬盘,以及NTFS格式的硬盘是否有文件大小的限制。…...

【unity3D】Scroll Rect组件—制作下滑列表

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的Scroll Rect组件 Scroll Rect组件 基础知识详细说明案例演示——制作一个简单的下滑框扩展 介绍:Scroll Rect组件是用…...

网络扫描与网络监听

前言:前文给大家介绍了网络安全相关方面的基础知识体系,以及什么是黑客,本篇文章笔者就给大家带来“黑客攻击五部曲”中的网络扫描和网络监听 目录 黑客攻击五部曲 网络扫描 按扫描策略分类 按照扫描方式分类 被动式策略 系统用户扫描 …...

Codeforces Round 904 (Div. 2) C

C. Medium Design 思路:我们设最大值所在的下标为 x x x,最小值所在的下标为 y y y,那么我们考虑一段区间对于答案的贡献: 若一段区间覆盖了 x x x,但没有覆盖 y y y,那么这段区间需要选择 若一段区间覆盖了 y y y,但没有覆盖 x…...

DBeaver连接数据库报错:Public Key Retrieval is not allowed 的解决方案

写在前面: DBeaver是一款免费的数据库管理工具,安装也是傻瓜式一键安装,比较推荐。 DBeaver官网(加载有点慢,耐心等待):DBeaver Community | Free Universal Database Tool 报错详情&#xff…...

DeepFace【部署 04】轻量级人脸识别和面部属性分析框架deepface使用Docker部署CPU+GPU两个版本及cuDNN安装

使用Docker部署CPUGPU 1.CPU2.GPU3.cuDNN安装3.1 Prerequisites3.2 下载Linux版本cuDNN3.3 安装 1.CPU 本说明基于DeepFace的Docker镜像文件deepface_image.tar进行说明。 # 1.导入镜像 docker load -i deepface_image.tar# 2.创建模型文件夹【并将下载好的模型文件上传】 mk…...

程序生活 - 减肥小记

文章目录 缘起健康就好了吗?关于外在和物质生活难与易 我的减肥生活一些细节轻断食戒糖、油炸、重口味睡眠改变社交方式用运动化解压力不喝牛奶 缘起 2017年的一次腿受伤,让我从一个怎么都吃不胖的人,变成了一个实实在在的胖子。 如果你从来…...

深度学习_4_实战_直线最优解

梯度 实战 代码: # %matplotlib inline import random import torch import matplotlib.pyplot as plt # from d21 import torch as d21def synthetic_data(w, b, num_examples):"""生成 Y XW b 噪声。"""X torch.normal(0,…...

《视觉SLAM十四讲》公式推导(三)

文章目录 CH3-8 证明旋转后的四元数虚部为零,实部为罗德里格斯公式结果 CH4 李群与李代数CH4-1 SO(3) 上的指数映射CH4-2 SE(3) 上的指数映射CH4-3 李代数求导对极几何:本质矩阵奇异值分解矩阵内积和迹 CH3-8 证明旋转后的四元数虚部为零,实部…...

pnpm、npm、yarn的区别

pnpm、npm、yarn是三种不同的包管理器,它们之间有一些区别。 安装速度:pnpm的安装速度比npm和yarn快,因为它使用了只下载必需的模块,而不是下载整个依赖树。此外,pnpm还可以并行下载模块,从而进一步提高下…...

搞定蓝牙——第四章(GATT协议)

搞定蓝牙——第四章(GATT协议) 原理介绍层次结构server和client端Attribute ESP32代码 文章下面用的英文表示: server和client:服务端和客户端 char.:characteristic缩写,特征 Attribute:属性 ATT:Attribut…...

Go语言入门心法(十四): Go操作Redis实战

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(七): 并发与通道 Go语言入门心法(八): mysql驱动安装报错o…...

Java学习笔记(三)

前言 这个主要就是想记录一个点,就是二维数组保存的元素就是一维数组的地址,这个概念大家都知道了,那么接下来就是我最近写程序发生的一个事情了。 随机打乱一个一维数组 这个程序我相信大家都是会写的,通过randomArr来随机打乱…...

Flutter笔记:GetX模块中不使用 Get.put 怎么办

Flutter笔记 GetX模块中不使用 Get.put 怎么办 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/13400672…...

2023前端面试整理

1. 介绍一下最近参与的项目,负责那些业务,在开发过程中遇到过问题吗?最后是咋样处理的? 之前负责过大小十几个项目,负责过浙里办的整套上架流程,负责过数据大屏统计,后台管理系统文书生成表单生成等,浙政钉…...

文化融合:TikTok如何弥合跨文化差异

随着全球化的加速和数字媒体的崛起,社交媒体平台已经成为连接世界各地人们的纽带。其中,TikTok作为一个引领者,正在以惊人的速度消除跨文化差异,促进文化融合,使人们更加了解和尊重不同背景和传统。 本文将深入探讨Ti…...

asp.net core获取config和env

配置文件的读取和使用 //读取配置文件直接使用 var configModel configuration.GetSection("DataBaseConfig").Get<DataBaseConfigModel>(); //读取配置文件注入到IOC中 services.Configure<AssemblyConfig>(configuration.GetSection("AssemblyC…...

Git不常用命令(持续更新)

今日鸡汤&#xff1a;当你最满足的时候&#xff0c;通常也最孤独&#xff1b;当你最愤慨的时候&#xff0c;通常也最可怜。 此博文会列出一些平时不常用&#xff0c;但是能提高效率的git命令&#xff0c;后续会出IDEA对应的操作步骤 快看看你是不是都用过... 分支&#xff08;…...

PostPreSql 数据库的一些用法

1、varchar 类型转换成数字 select sum(CAST(order_num AS NUMERIC)) from ads_port_cli_cons_freq_rpt where yr2023 and mon 08...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...