摸鱼大数据——Hive函数1-3

1、函数分类

Hive函数对应的官方文档: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
​
​
原生分类标准:  内置函数(Hive官方写好的,咱们直接用即可) 和 用户自定义函数(UDF,UDAF,UDTF)
​
分类标准扩大化:  本来,UDF 、UDAF、UDTF这3个标准是针对用户自定义函数分类的; 但是,现在可以将这个分类标准扩大到hive中所有的函数,包括内置函数和自定义函数;
​
目前hive三大标准
UDF: 用户自定义函数user define function。特点:输入一条返回一条,也就是【一对一】的关系
UDAF: 用户自定义聚合函数user define aggregate function。特点:输入多条返回一条,也就是【多对一】的关系
UDTF: 用户自定义表数据生成函数user define table-generation function。特点:输入一条返回多条,也就是【一对多】的关系
​
查询所有hive函数名称: show functions;
查看某函数使用帮助文档: desc function [extended] 函数名;         
注意: 加上extended关键字能查看详细信息示例

示例:

show tables;
show databases;
​
-- 查看Hive中有哪些函数列表
show functions;
​
-- 查看函数的具体说明
describe function extended count;
describe function extended avg;

2、复杂类型函数

hive复杂类型:   array  struct  map
​
array类型: 又叫数组类型,存储同类型的单数据的集合取值: 字段名[索引]   注意: 索引从0开始获取长度的函数: size(字段名)       常用判断是否包含某个数据的函数: array_contains(字段名,某数据)   常用对数组进行排序的函数: sort_array(数组)
​
struct类型: 又叫结构类型,可以存储不同类型单数据的集合取值: 字段名.子字段名nmap类型: 又叫映射类型,存储键值对数据的映射(根据key找value)取值: 字段名[key]获取长度的函数: size(字段名)        常用       获取所有key的函数: map_keys()            常用 获取所有value的函数: map_values()        常用 

示例:

-- 演示集合函数
select array('binzi','666','888');
select size(array('binzi','666','888'));
select array_contains(array('binzi','666','888'),'binzi');
​
-- 复杂数据类型(补充sort_array)
select array(4,2,3,5,1); -- 创建一个数组
select sort_array(array(4,2,3,5,1));  -- 只能升序排序
describe function extended sort_array;
​
​
select map('a',1,'b',2,'c',3);
select size(map('a',1,'b',2,'c',3));
select map_keys(map('a',1,'b',2,'c',3));-- ["a","b","c"]
select map_values(map('a',1,'b',2,'c',3));-- [1,2,3]

3、数学函数

常用:
round: round(字段名称[,小数的位数]),对数据进行四舍五入
ceil: 得到大于字段值的最小整数
floor: 得到小于字段值的最大整数
​
​
不常用:
rand: 随机生成0-1的数据
pi: 生成Π的结果

示例:

select "hello world" as f;
select 12123 as f;
​
-- 复杂数据类型(补充sort_array)
select array(4,2,3,5,1); -- 创建一个数组
select sort_array(array(4,2,3,5,1));  -- 只能升序排序
​
describe function extended sort_array;
​
-- 数学函数
-- round(字段名称[,小数的位数]):对数据进行四舍五入
select round(3.1415926);
select round(3.1415926,2);
select round(3.140123,3);
​
select age*1.2 from students;
select round(age*id) from students;
​
-- rand([seed]):随机生成0-1的数据。可以传递seed这个随机种子(了解)
select rand();
select rand(10);
describe function extended rand;
​
-- ceil(字段):得到大于字段值的最小整数
select ceil(1.999999999); -- 2
select ceil(1.00000001); -- 2
​
-- floor(字段):得到小于字段值的最大整数
select floor(1.999999999); -- 1
select floor(0.999999999); -- 0
​
-- pi:生成Π的结果
select pi();

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内核编译版本号带有+问题

编译内核4.19.163以后 make ARCHarm64 modules_install INSTALL_MOD_PATH../aarch64_modules/ 发现 DEPMOD 4.19.246 修改 scripts/setlocalversion 把那个号给它干掉 解决问题

订单共享模式:开启你的终身财富之旅

在当今这个信息爆炸的时代,每个人都在寻找着属于自己的财富增长之道。而“二人订单共享结束制”作为一种全新的商业模式,正以其独特的魅力吸引着越来越多的目光。只需499元的终身消费,你便能成为平台的会员,开启一段与众不同的赚钱…

范闲通过MD5哈希算法破解庆帝与神庙信件的精彩解析

价值万元免费资料领取欢迎关注 公众号 数据分析螺丝钉 剧情背景 在《庆余年2》中,范闲与庆帝和神庙之间的权谋斗争愈演愈烈。但是其实早在第一季,范闲宫中在找打开箱子钥匙的时候就发现了一封秘信,这封信件可能隐藏着揭露叶轻眉的一些关键信…

基于Pytorch框架的深度学习EfficientNetV2神经网络中草药识别分类系统源码

第一步:准备数据 5种中草药数据:self.class_indict ["百合", "党参", "山魈", "枸杞", "槐花", "金银花"] ,总共有900张图片,每个文件夹单独放一种数据 第二步&a…

split拆分文件

在Linux系统中,split命令是一个非常实用的工具,用于将大文件拆分成多个小文件。以下是一些基本的使用方法: 基本用法: 使用split命令可以按照指定的行数来拆分文件。例如,将一个文件每1000行拆分成一个新文件&#xff…

Go 语言的基本构成、要素与编写规范

Go 语言,作为由 Google 开发的现代编程语言,以其简洁、高效和并发编程能力而著称。在构建高性能分布式系统和现代软件开发中,Go 语言正日益受到欢迎。本篇文章将详细探讨 Go 语言程序结构的各个要素,包括函数定义、注释规范、数据…

C语言练习题之——从简单到烧脑(11)(每日两道)

题目1:有两个矩阵a[3][2],b[2][2],元素值由键盘输入&#xff0c;计算a与b的矩阵之和&#xff08;两个矩阵循环中相加&#xff0c;结尾求和&#xff09; #include<stdio.h> int main() {int arr[3][2], brr[2][2],i,j,sum10,sum20;for (i 0; i < 3; i){for (j 0; j …

Docker搭建FRP内网穿透服务器

使用Docker搭建一个frp内网穿透 在现代网络环境中&#xff0c;由于防火墙和NAT等原因&#xff0c;内网设备无法直接被外网访问。FRP (Fast Reverse Proxy) 是一款非常流行的内网穿透工具&#xff0c;它能够帮助我们将内网服务暴露给外网。本文将介绍如何在Linux服务器上使用Do…

压测工具Jmeter的使用

一、安装 下载地址&#xff1a; 国外地址&#xff1a;jmeter.apache.org&#xff08;下载会很慢&#xff0c;建议使用国内地址&#xff09; 国内地址&#xff1a;apache-jmeter-binaries安装包下载_开源镜像站-阿里云 下载好进入bin文件下&#xff0c;双击jmeter.bat 打开…

哈希传递(PTH)

使用Mimikatz进行PTH Pass The Hash 哈希传递攻击简称 PTH&#xff0c;该方法通过找到与账户相关的密码散列&#xff08;NTLLHash&#xff09;来进 行攻击。由于在Windows系统中&#xff0c;通常会使用NTLM Hash对访问资源的用户进行身份认证&#xff0c;所以该攻 击可以在不需…

WPF WebBrowser控件解析 HTML

WPF WebBrowser控件解析 HTML Window里面的AllowsTransparency属性不要加<WebBrowser x:Name"webBrowser" />public void InitWeb() {string htmlString "<html><head><title>this is a test</title><script type text/jav…

算法学习笔记(7.2)-贪心算法(最大容量问题)

目录 ##问题描述 ##问题示例 ##释 ##贪心策略的确定 ##代码示例 ##正确性验证 ##问题描述 输入一个数组 ℎ&#x1d461; &#xff0c;其中的每个元素代表一个垂直隔板的高度。数组中的任意两个隔板&#xff0c;以及它们之间的空间可以组成一个容器。 容器的容量等于高度和宽…

泛型aaaaa

1、泛型的概述&#xff1a; 1.1 泛型的由来 根据《Java编程思想》中的描述&#xff0c;泛型出现的动机&#xff1a; 有很多原因促成了泛型的出现&#xff0c;而最引人注意的一个原因&#xff0c;就是为了创建容器类。泛型的思想很早就存在&#xff0c;如C中的模板&#xff0…

6个PPT素材模板网站,免费!

免费PPT素材模板下载&#xff0c;就上这6个网站&#xff0c;建议收藏&#xff01; 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图库 菜鸟图库是一个设计、办公、媒体等素材非常齐全的网站&#xff0c;站内有几百万的素材&#xff0c;其中PPT模板就有几十万个&#xff0c;…

[stm32]——定时器与PWM的LED控制

目录 一、stm32定时器 1、定时器简介 2、定时器分类 3、通用定时器介绍 二、PWM相关介绍 1、工作原理 2、PWM的一般步骤 三、定时器控制LED亮灭 1、工程创建 2、代码编写 3、实现效果 四、采用PWM模式&#xff0c;实现呼吸灯效果 1、工程创建 2、代码编写 3、实现效果 一、stm3…

STM32 IIC协议

本文代码使用 HAL 库。 文章目录 前言一、什么是IIC协议二、IIC信号三、IIC协议的通讯时序1. 写操作2. 读操作 四、上拉电阻作用总结 前言 从这篇文章开始为大家介绍一些通信协议&#xff0c;包括 UART&#xff0c;SPI&#xff0c;IIC等。 UART串口通讯协议 SPI通信协议 一、…

B端系统:角色与权限界面设计,一文读懂。

一、什么是角色与权限系统 角色与权限系统是一种用于管理和控制用户在系统中的访问和操作权限的机制。它通过将用户分配到不同的角色&#xff0c;并为每个角色分配相应的权限&#xff0c;来实现对系统资源的权限控制和管理。 在角色与权限系统中&#xff0c;通常会定义多个角色…

postgressql——四种进程间锁(4)

进程间锁 在PostgreSQL里有四种类型的进程间锁: Spinlocks:自旋锁,其保护的对象一般是数据库内部的一些数据结构,是一种轻量级的锁。 LWLocks:轻量锁,也是主要用于保护数据库内部的一些数据结构,支持独占和共享两种模式。 Regular locks:又叫heavyweight locks,也就是…

【深度揭秘GPT-4o】:全面解析新一代AI技术的突破与优势

目录 ​编辑 1.版本对比&#xff1a;从GPT-3到GPT-4&#xff0c;再到GPT-4o的飞跃 1.1 模型规模的扩展 1.2 训练数据的更新 1.3 算法优化与效率提升 1.4 案例分析 2.技术能力&#xff1a;GPT-4o的核心优势 2.1 卓越的自然语言理解 2.1.1 上下文理解能力 2.1.2 语义分…

el-table中的信息数据过长 :show-overflow-tooltip=‘true‘**

可以在 el-table-column中添加 :show-overflow-tooltip‘true’