国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 大數據技術-hive窗口函數詳解

大數據技術-hive窗口函數詳解

來源:千鋒教育
發布人:小千
時間: 2021-06-09 09:26:00 1623201960

      有不少同學一聽這個標題,hive窗口函數是什么鬼?沒聽說過還有窗口函數這個東西啊,其實它的用處可大了,下面聽小千慢慢道來。

      hive窗口函數

      窗口函數指定了函數工作的數據窗口大小(當前行的上下多少行),這個數據窗口大小可能會隨著行的變化而變化。

      窗口函數和聚合函數區別

      窗口函數對于每個組返回多行,組內每一行對應返回一行值。聚合函數對于每個組只返回一行。

      在日常的開發中常用那些類型函數??

      1、字符串操作函數?split、concat、ifnull、cast

      2、聚合函數 : hive適用于分析,所以常用。

      3、時間函數 : 數倉的特征隨時間變化而變化,所以時間也特別多

      4、窗口函數:sum() over() 、 count() over() 、 排名函數

      了解哪些窗口函數,都是什么意思?

      sum(col) over() :  分組對col累計求和

      count(col) over() : 分組對col累計

      min(col) over() : 分組對col求最小

      max(col) over() : 分組求col的最大值

      avg(col) over() : 分組求col列的平均值

      first_value(col) over() : 某分區排序后的第一個col值

      last_value(col) over() : 某分區排序后的最后一個col值 lag(col,n,DEFAULT) : 統計往前n行的col值,n可選,默認為1,DEFAULT當往上第n行為NULL時候,取默認值,如不指定,則為NULL

      lead(col,n,DEFAULT) : 統計往后n行的col值,n可選,默認為1,DEFAULT當往下第n行為NULL時候,取默認值,如不指定,則為NULL

      ntile(n) : 用于將分組數據按照順序切分成n片,返回當前切片值。注意:n必須為int類型。

      over(分組 排序 窗口) 中的order by后的語法: 1、物理窗口(真實往上下移動多少行rows between):

      CURRENT ROW | UNBOUNDED PRECEDING | [num] PRECEDING AND UNBOUNDED FOLLOWING | [num] FOLLOWING| CURRENT ROW

      如: over(partition by col order by rows between 1 preceding and 1 fllowing)

1

      邏輯窗口(滿足條件上下多少行):(金融行業、保險行業、p2p等)

      range between [num] PRECEDING AND [num] FOLLOWING

      如: over(partition by col order by range between 5 preceding and 5 fllowing)

2

      注意:窗口函數一般不和group by搭配使用。

      以上就是關于大數據hive窗口函數的介紹了,最后歡迎對大數據感興趣的同學了解一下我們的大數據開發培訓課程,內容包含Linux&&Hadoop生態體系、大數據計算框架體系、云計算體系、機器學習&&深度學習。現在咨詢還能免費領取大數據學習資料,趕緊來找在線老師申領吧。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT