日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/7/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?

總結

以上是生活随笔為你收集整理的hive-内置函数(常用内置函数汇总)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久草资源在线 | 中文字幕亚洲精品 | 麻豆视频91| 精品国产乱码久久久久久久软件 | 国产欧洲亚洲 | 亚欧成人| 国产精品s | 小泽玛利亚一区二区三区视频 | 欧美日韩亚洲不卡 | 国产69精品一区二区 | 成人综合精品 | 午夜高清 | 少妇不卡视频 | 久久视频在线观看 | 老熟妻内射精品一区 | 夜夜伊人 | 精品xxxxx | 成人免费视频网站在线观看 | 国模在线观看 | c逼视频| 中文字幕乱码视频 | 91资源站| 欧美中文字幕在线播放 | 鲁一鲁在线视频 | 亚洲在线一区 | 成年人在线免费观看网站 | 日韩毛片无码永久免费看 | 毛片88| 中文字幕在线导航 | 亚洲天堂av电影 | 尤物av在线 | 午夜中文字幕 | 成人xxx视频 | 国产福利短视频 | 超碰最新上传 | 午夜福利毛片 | 亚洲欧美自拍偷拍 | 精品人伦一区二区三电影 | 91在线观看喷潮 | 欧洲性开放大片 | 久久久久久久久久一区二区三区 | 亚洲成人视屏 | 91操人视频 | 中文字幕一区二区视频 | 亚洲精品国产精品乱码不99按摩 | 欧美视频亚洲视频 | 福利电影一区二区三区 | 操你妹影院 | 成年人网站免费观看 | 亚洲欧美日韩一区二区三区四区 | 蜜桃av噜噜 | 综合婷婷久久 | 91国偷自产一区二区三区老熟女 | 亚洲香蕉一区 | 激情狠狠 | 综合激情久久 | 日本一级二级视频 | 先锋成人| 一区二区三区在线观看 | 欧美精品videos另类 | 国产在线传媒 | 交做爰xxxⅹ性爽 | 中文字字幕在线观看 | 热99| 视频在线a | 国产福利免费 | 国产一级大片在线观看 | 奇米影视第四色888 免费观看a毛片 | 日韩精品第一 | 一区二区三区日本视频 | 91亚洲精品国偷拍自产在线观看 | 天堂av一区二区三区 | 国产午夜一区二区 | 国产欧美一区二区精品久久久 | 免费网站在线观看人数在哪动漫 | 成人午夜黄色 | 欧美在线视频一区 | 波多野结衣亚洲一区二区 | 蜜桃综合| 777久久久精品一区二区三区 | 特黄aaaaaaaaa毛片免费视频 | 欧美日韩一区二区三区免费 | 制服丝袜天堂网 | 成人在线免费观看网址 | www.蜜桃av.com | jizz少妇 | 小草av| 国产一区二区三区麻豆 | 欧美高清hd19 | 少妇偷人精品无码人妻 | 99久久婷婷国产综合精品 | 69精品人人人人 | 国产成人愉拍精品久久 | 午夜一区二区三区免费观看 | 亚洲国产精品人人爽夜夜爽 | 午夜鲁鲁 | 亚洲经典av | 内射后入在线观看一区 | 四虎4hu |