好程式設計師大資料培訓分享之hive常用內部函式
好程式設計師大資料培訓分享之 hive 常用內部函式 , hive 是一種典型的資料倉儲分析工具,常用語編寫 hql 語句進行指標分析。在編寫 hql 的過程中無疑會用到很多的函式,哪本章來編寫一些常見的函式。常見函式很多,不同常見不同人員,使用不一樣,不喜勿噴。
1、隨機函式rand()
格式: rand([ int seed]) 返回: double -- 取0-1的隨機值 select rand(); -- 指定隨機函式的種子seed,該隨機會返回一個固定值 select rand( 100 );
2、切分函式split()
格式: split(str,spliter) 返回: array -- 獲取隨機數*100,然後再取整。小數點.需要轉義 select split(rand() * 100 , '\\.' )[ 0 ];
3、字串擷取函式substring() 或 substr()
格式: substring (str, start , length ) substr(str, start , length ) 返回: string -- 獲取隨機數*100,然後再從0位置開始,取2位字串。 select substring (rand() * 100 , 0 , 2 ); -- 獲取隨機數*100,然後再從0位置開始,取2位字串。 select substr(rand() * 100 , 0 , 2 );
4、判斷函式if()
格式: if (condition, true , false ) 返回: true或者flase部分的值 -- 查詢s_tmp表,如果s.sex等於1,則是男,否則是女 select s.id,s.name, if (s.sex = 1 , '男' , '女' ) from s_tmp s; -- if巢狀查詢 select s.id,s.name, if (s.id = 1 , '男' , if (s.id = 2 , '女' , '妖' )) from s_tmp s;
5、選擇函式case when
類似於 java中的swith 。比 if函式更加的具有擴充套件性 。格式: case 值 when 1 then '' ... elseend 返回: then或者else後的值 格式 2 : casewhen 值 = 1 then '' ... elseend 返回: then或者else後的值 -- 查詢s_tmp中的s.sex,如果為1,則是男,為2則是女,其它為妖 select s.id,s.name, case s.sex when 1 then '男' when 2 then '女' else '妖' endfrom s_tmp s; -- 查詢s_tmp中的s.sex,如果為1,則是男,為2則是女,其它為妖 select s.id,s.name, casewhen s.sex = 1 then '男' when s.sex = 2 then '女' else '妖' endfrom s_tmp s;
6、正在替換函式regexp_replace()
格式: regexp_replace(str,old_string,new_str) # old_string支援萬用字元 返回: string -- 將.png替換為.jpg select regexp_replace( '1.png' , '.png' , '.jpg' ); -- 將s.name的名字為zhangsan的替換為lisi select s.id,regexp_replace(s.name, 'zhangsan' , 'lisi' ) from s_tmp s;
7、型別轉換 函式cast()
格式: cast (x as type ) 返回: type型別 -- 將1.0轉換成int型別 select cast ( 1 . 0 as int ); -- 將隨機數*100,轉換成int型別 select cast (rand() * 100 as int );
8、四捨五入函式round()
格式: round(double, 保留位數 ) 返回: double -- 隨機數*100,然後四捨五入取值。沒有保留位數預設四捨五入取整,比如0.0 或者 1.0 select round(rand() * 100 ); -- 隨機數*100,然後保留兩位小數,四捨五入取值 select round(rand() * 100 , 2 );
9、連線函式concat() 或者 concat_ws()
格式: concat(str1,str2...) 或者 concat_ws(split_str,str1,str2....) 返回: string -- 將字串1,2拼接起來 select concat( "1" , "2" ); -- 將字串1,2拼接起來,並使用|來進行分割 select concat_ws( "|" , "1" , "3" , "2" ); -- 將id,name,sex使用|進行拼接 select concat_ws( '|' , cast (s.id as string),s.name, cast (s.sex as string)) from s_tmp s;
10、字串長度函式length()
格式 : length (str) 返回: int -- 獲取name的長度 selectlength (s.name) from s_tmp s;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2694131/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料培訓分享之hive常見自定義函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- 好程式設計師大資料學習路線hive內部函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師Python培訓分享簡述fetchone()函式程式設計師Python函式
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師Java培訓分享Java函式式編碼結構程式設計師Java函式
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享MySQL8.0新特性程式設計師大資料MySql
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hive的靜態分割槽與動態分割槽程式設計師大資料Hive
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師Python培訓分享Python的遞迴函式與匿名函式呼叫程式設計師Python遞迴函式
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師大資料培訓分享settings和mapping的意義程式設計師大資料APP