hive-内置函数(常用内置函数汇总)

show functions; #查看所有内置函数,共271个 show function sum; #查看sum函数的描述信息 show function extended sum; #查看内置函数的描述信息和举例的使用方法

 

举例数据表:stu

id

name

address

score

credit

01

huang

hebi,changzhou,dalian

chinese:80,math:90

3.2

02

meng

hebi,taiyuan

chinese:85,math:70

4

 

聚合函数(多对一:多个参数计算成一个值)

 

1.ceil(X):取上限,取不小于X的最小整数;

select ceil(max(credit)) from stu;

学分最大值是4,ceil(4) = 4

 

2.floor(X):取下限,取不大于X的最大整数;

select floor(min(credit)) from stu;

学分最小值是3.2,floor(3.2) = 3

 

3.abs(X):取绝对值

 

4.array(x,y,z):转化为数组

select array(1,2,3) ;

输出:

1

2

3

 

5.map(a,b,c,d):转化为map,括号中的元素个数必须为偶数个,其中奇数位是key,偶数位是value

select map(1,2,3,4) ;

输出:

1 2

3 4

 

6.concat(x,y,z) / concat_ws(x,y,z):拼接函数;

select concat('hello','-','world','-','!'); select concat_ws('-', 'hello','world','!'); #均输出:hello-world-!

 

7.substring(str, pos, len):截取函数

select substring('hello world',1,3) ; #输出:hel select substring('hello world',1) ; #输出:hello world select substring('hello world',-3,2) ; #输出:rl select substring('hello world',-3) ; #输出:rld

 

8.instr(str1, str2):查找字符str2在字符str1中第一次出现的位置

select instr('hello','l') ; #输出:3 select instr('hello','x') ; #输出:0,因为str1中没有x

 

9.nvl(value,default_value) / getlong(属性值, 替代值):一般用于处理缺失值

select address[2] from stu; #输出:dalian null select nvl(address[2],'china') from stu; #输出:dalian china

 

10.if(条件?,条件为真的返回值,条件为假的返回值):条件函数

select if(address[2] is null, 'china', address[2]) from stu; #输出:dalian china

 

 

炸裂函数(一对多:一个值炸裂成多个)

 

1.explode(x):炸裂函数

select explode(address) from stu ; # x是array数组:

输出:

hebi

changzhou

dalian

hebi

taiyuan

 

select explode(score) from stu ; # x是map:

输出:

chinese 80

math 90

chinese 85

math 70

 

若是炸裂开之后还需要配上其他列的信息,比如想知道数学考了90的是谁?则需要使用横向视图lateral view

select [表中字段], [炸裂字段] from [表名] lateral view explode(被炸裂字段) [视图的别名] as [炸裂字段的别称];

 

map结构

select name, ts.sub, ts.res from stu lateral view explode(score) ts as sub,res;#因为score是map结构,因此需要有两个别称sub,res;

输出:

huang chinese 80

huang math 90

meng chinese 85

meng math 70

 

array类型

select name, ts.city from stu lateral view explode(address) ts as city;#address炸裂后只有一列,因此只需要1个别称city

输出:

huang hebi

huang changzhou

huang dalian

meng hebi

meng taiyuan

 

 

 

分组排名函数

 

1.row_number()、rank()、dense_rank() :分组排名,若不需要分组,则去掉partition by [字段]

 

row_number() over(partition by [字段] order by[字段]) #分组后给每一组中加组内排序1...n rank() over(partition by [字段] order by[字段]) #排名,同分的2个人占 2 个名额 dense_rank() over(partition by [字段] order by[字段]) #排名,同分的2个人占 1 个名额

 

举例:数据表stu

huang 18 math

he 17 math

meng 19 chinese

ji 17 math

li 16 chinese

liu 15 math

 

row_number():取每个部门中年龄最大的人的信息:

select t.sname,t.age,t.departmant, row_number() over(partition by departmant order by age desc) as rank FROM stu t;

结果:

huang 18 math 1

he 17 math 2

ji 17 math 3

liu 15 math 4

meng 19 chinese 1

li 16 chinese 2

 

rank():分部门按照年龄排名(分组计数排名):

select t.sname,t.age,t.departmant, rank() over(partition by departmant order by age desc) as rank FROM stu t;

结果:

huang 18 math 1

he 17 math 2

ji 17 math 2

liu 15 math 4 #第2 直接到第4

meng 19 chinese 1

li 16 chinese 2

 

dense_rank():分部门按照年龄排名(分组顺续排名):

select t.sname,t.age,t.departmant, dense_rank() over(partition by departmant order by age desc) as rank FROM stu t;

结果:

huang 18 math 1

he 17 math 2

ji 17 math 2

liu 15 math 3 #第2 到第3,第2名有两个人但是只占一个名额

meng 19 chinese 1

li 16 chinese 

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

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

相关文章

LeetCode 828. 统计子串中的唯一字符(中心扩展)

1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如:s “LEETCODE” ,则其中 “L”, “T”,“C”,“O”,“D” 都是唯一字符,因为它们只出现一次,所以 coun…

钢笔的保养

钢笔其实很泼辣的不需要用心的保养,但如果太不注意了,也会早早损毁了一支好笔。所以,为了自己方便地更长久些,还是要保养一下。保养的方法很简单,就是: 用前先浸,墨水不混,定期清洗。…

hive - 自定义函数(超详细步骤,手把手的交)

用Java开发自定义函数,步骤: 1.eclipse上新建一个工程project(db2019); 2.导jar依赖包: db2019右键 --build path --configure... --add library --user library --new(新建一个library(hive2.3.2_jar)) --add ext…

LeetCode 1053. 交换一次的先前排列

1. 题目 给你一个正整数的数组 A(其中的元素不一定完全不同),请你返回可在 一次交换(交换两数字 A[i] 和 A[j] 的位置)后得到的、按字典序排列小于 A 的 最大可能排列。 如果无法这么操作,就请返回原数组…

bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...

概述后台框架中使用树状表格是非常常用的操作,layUI本身并没有这种组件。 第三方的treetable.js做到了完美的实现,但是不能实现在双击时异步加载数据,本文就是站在了巨人的肩膀上实现的异步加载的树状表格~1. 使用说明本组件基于treetable.js…

EchoServer

using System;using System.Net.Sockets;using System.IO;using System.Net; namespace ConsoleApplication1{ class EchoServer { public static void Main11() { // TcpListener监听端口1234 IPAddress ipAd IPAddress.Parse(&qu…

hive - 解析 json

内置函数:get_json_object(json串,解析路径) 解析路径说明: $ :跟对象 . :子对象 [] :数组下标 * :所有 举例: 数据样例: {"movie":"1190","rate":"4.8","timestamp":…

[scikit-learn 机器学习] 6. 逻辑回归

文章目录1. 逻辑回归二分类2. 垃圾邮件过滤2.1 性能指标2.2 准确率2.3 精准率、召回率2.4 F1值2.5 ROC、AUC3. 网格搜索调参4. 多类别分类5. 多标签分类5.1 多标签分类性能指标本文为 scikit-learn机器学习(第2版)学习笔记逻辑回归常用于分类任务 1. 逻…

libsvm回归参数寻优cgp_【lightgbm/xgboost/nn代码整理二】xgboost做二分类,多分类以及回归任务...

1.简介该部分是代码整理的第二部分,为了方便一些初学者调试代码,作者已将该部分代码打包成一个工程文件,包含简单的数据处理、xgboost配置、五折交叉训练和模型特征重要性打印四个部分。数据处理部分参考:代码整理一,这…

hive - 可优化的 10 个地方及详解

1.合理选择排序 排序算法比较耗资源,应根据业务需要选择 order by :全局排序,大数据集会消耗太过漫长的时间sort by:局部排序,只能保证每个reducer的输出数据都是有序的distribute by:分桶不排序,控制map…

[scikit-learn 机器学习] 7. 朴素贝叶斯

文章目录1. 朴素贝叶斯2. NB 与 逻辑回归对比本文为 scikit-learn机器学习(第2版)学习笔记相关知识参考:《统计学习方法》朴素贝叶斯法(Naive Bayes,NB) 1. 朴素贝叶斯 通过最大概率来预测类&#xff1a…

堕落的时候看看——清华大学老师的一席话

一双鞋,耐克的6百多;李宁的4百多;特步的3百多;361的2百多;所以,你毕业于一个什么样的大学很重要。 一双鞋,在地摊不过几十元,到了商场、专卖店,会涨到一百甚至几百。所以…

塔菲克蓝牙适配器驱动_小身材,大功能,biaze毕亚兹USB蓝牙适配器开箱体验

在日常生活中,我们平时使用的台式电脑或是笔记本电脑,想要传输数据或者音频的时候,都是需要借助数据传输线或是U盘等传输设备,使用过程可想而知,有点麻烦。我们都知道,手机是有蓝牙传输功能的,只…

MySQL - cast()函数

日常建表习惯用 create tabel tb_name as select......,这种建表方式的其中一个缺点就是:系统会根据查询出的字段,定义字段类型。有时候会把 %Y-%m-%d 格式的日期字段定义为 varchar 。建模的时候苦不堪言。 那么怎么在建表过程中自己定义每…

HDU1003——MAX SUM

简单DP&#xff0c;状态转移公式&#xff1a;num[j].data max{num[j].data, num[j].datanum[j-1].data}&#xff0c;也就是保证加上前一个数不失自己的值减小。 View Code #include <stdio.h>#define N 100010#define inf 9999999struct _num{int data;int pre;int nex…

[scikit-learn 机器学习] 8. 非线性分类和决策树

文章目录1. 特征选择标准2. 网页广告预测2.1 数量处理2.2 网格搜索模型参数3. 决策树优缺点本文为 scikit-learn机器学习&#xff08;第2版&#xff09;学习笔记相关知识&#xff1a;《统计学习方法》决策树&#xff08;Decision Tree&#xff0c;DT&#xff09; 1. 特征选择…

智慧新泰时空大数据与云平台_智慧警务大数据云平台开发情报研判系统解决方案...

智慧公安作为公安信息化开展到高级阶段的一种警务形态&#xff0c;“智慧公安”主要采用物联网、云计算、无线通讯、智能动态感知分析等新一代信息技术,将公安工作IT根底设备与物理设备、人际环境等高度交融,以提供智能化公安决策与效劳。智慧警务大数据云平台开发情报研判系统…

RGB颜色查询对照表#FFFFFF

大致是下图这样的&#xff0c;有需要的可以点击下面的连接复制使用&#xff1a; https://www.114la.com/other/rgb.htm

ikbc机械键盘打字出现重复_超小无线机械键盘,绝佳移动打字体验

NuType筹资信息产品名称NuType上线平台Kickstarter发起团队NUPHY发起地区中国香港目标金额80,000HKD筹集金额1,301,212HKD完全进度1,627%支持人数1,612最低价格697HKD上线时间2019/11/13-2019/12/28创次方/制表时间&#xff1a;2019年12月28日文/大智笔电键盘的打字体验远不及桌…

英语语法之形容词从句:定语从句

形容词从句:定语从句 限制和非限制性定语从句 ----------------------------------------------------------------------------- 限制和非限制性定语从句: 限制性定语从句是名词词组不可缺少的一个组成部分,去掉了会造成病句或意义不明确; 非限制性定语从句属于补充说明性质…