1. 程式人生 > >hive-常用操作及函式

hive-常用操作及函式

select '我們' from file_cto_user_info limit 1
select 1 from file_cto_user_info where 'football' like 'foot____' limit 1
--注意:否定比較時候用NOT A LIKE B
select 1 from file_cto_user_info where NOT 'football' like 'fff%' limit 1
 
--注意:判斷一個字串是否全為數字:
select 1 from file_cto_user_info where '123456' rlike '^\\d+$' limit 1
select 1 from file_cto_user_info where 'footbar' REGEXP '^f.*r$' limit 1
 
 --注意:hive中最高精度的資料型別是double,只精確到小數點後16位,在做除法運算的時候要特別注意
select ceil(28.0/6.999999999999999999999) from file_cto_user_info limit 1

--注意:精度在hive中是個很大的問題,類似這樣的操作最好通過round指定精度
select round(8.4 % 4 , 2) from file_cto_user_info limit 1

--邏輯非操作: NOT
select 1 from file_cto_user_info where not 1=2 limit 1

--向下取整函式: floor
select floor(3.1415926) from file_cto_user_info limit 1
--向上取整函式: ceil
select ceil(3.1415926) from file_cto_user_info limit 1
select ceiling(3.1415926) from file_cto_user_info limit 1

--隨機數
select rand(100) from file_cto_user_info limit 1

--開平方
select sqrt(16) from file_cto_user_info limit 1

--二進位制函式: bin
select bin(7) from file_cto_user_info limit 1

--十六進位制函式: hex
 select hex('abc') from file_cto_user_info limit 1

--反轉十六進位制函式: unhex
select unhex(616263) from file_cto_user_info limit 1

--進位制轉換函式: conv
--說明: 將數值num從from_base進位制轉化到to_base進位制
select conv(8,10,2) from file_cto_user_info limit 1
select conv(111,2,10) from file_cto_user_info limit 1
select conv(9,10,5) from file_cto_user_info limit 1

--絕對值函式: abs
select abs(-3.9) from file_cto_user_info limit 1

--正取餘函式: pmod
select pmod(-9,4) from file_cto_user_info limit 1

--相反數
select negative(8) from file_cto_user_info limit 1

--UNIX時間戳轉日期函式: from_unixtime
select from_unixtime(1458814863,'yyyy-MM-dd hh:mm:ss') from file_cto_user_info limit 1
select from_unixtime(1458814863,'yyyy-MM-dd HH:mm:ss') from file_cto_user_info limit 1
select from_unixtime(1458814863,'HH') from file_cto_user_info limit 1

select from_unixtime(1426672632,'yyyy-MM-dd') from file_cto_user_info limit 1
select from_unixtime(cast(substr(1454285291013,1,10) as bigint),'yyyyMMdd hh:mm:ss') from file_cto_user_info limit 1



select from_unixtime(unix_timestamp(),'yyyy-MM-dd') from file_cto_user_info limit 1

--獲取當前UNIX時間戳函式: unix_timestamp
select unix_timestamp() from file_cto_user_info limit 1
--日期轉時間戳
select unix_timestamp('2011-12-07 13:01:03') from file_cto_user_info limit 1

--日期時間轉日期函式: to_date
select to_date('2011-12-08 10:03:01') from file_cto_user_info limit 1

--日期轉年函式: year
select year('2012-12-08') from file_cto_user_info limit 1
select year('2011-12-08 10:03:01') from file_cto_user_info limit 1

--日期轉月函式: month
select month('2011-12-08 10:03:01') from file_cto_user_info limit 1;
select month('2011-08-08') from file_cto_user_info limit 1

--日期轉天函式: day
select day('2011-12-08 10:03:01') from file_cto_user_info limit 1;
select day('2011-08-12') from file_cto_user_info limit 1

--日期轉小時函式: hour
select hour('2011-12-08 10:03:01') from file_cto_user_info limit 1;

select concat(split('2011-12-08 10:03:01',' ')[0],' ',concat(substr(split('2011-12-08 10:03:01',' ')[1],1,2)+8,split('2011-12-08 10:03:01',' ')[1],3,6))
from file_cto_user_info limit 1;

--日期轉分鐘函式: minute
select minute('2011-12-08 10:03:01') from file_cto_user_info limit 1;

--日期轉秒函式: second
select second('2011-12-08 10:03:01') from file_cto_user_info limit 1;

--日期轉周函式: weekofyear  返回指定日期所在一年中的星期號,範圍為0到53。
select weekofyear('2011-12-08 10:03:01') from file_cto_user_info limit 1;

--兩個時間引數的日期之差
select datediff('2015-11-30','2015-11-28') from file_cto_user_info limit 1;

--返回周幾
select pmod(datediff('2015-11-09','2013-01-07'),7)+1 from file_cto_user_info limit 1;

--給定時間,在現在時間基礎上加上指定的時間段。
select date_add('2015-04-05 10:00:00',0.5) from file_cto_user_info limit 1;
from_unixtime(unix_timestamp(),'yyyy-MM-dd hh:mm:ss')
--給定時間,在此基礎上減去指定的時間段
select date_sub('2015-04-05',5) from file_cto_user_info limit 1;

--判斷是否滿足條件,如果滿足返回一個值,如果不滿足則返回另一個值
select if(1>0,'條件滿足','條件為滿足') from file_cto_user_info limit 1;

--返回一組資料中,第一個不為NULL的值,如果均為NULL,返回NULL
select coalesce(null,'1',2,'3','',null) from file_cto_user_info limit 1;

--返回倒序字串
select reverse('abcdefg') from file_cto_user_info limit 1;

--連結多個字串,字串之間以指定的分隔符分開。
select concat_ws('@','1111','2222','3333') from file_cto_user_info limit 1;

--字串A中的B字元被C字元替代
select regexp_replace('asdc://','://','a') from file_cto_user_info limit 1;

--通過下標返回正則表示式指定的部分。
select regexp_extract('asdc','a(*)dc',1) from file_cto_user_info limit 1;

--獲得主機名
select parse_url('http://www.csdn.net/aaa.txt','HOST') from file_cto_user_info limit 1;

--獲得引數值
select parse_url('http://www.csdn.net/aaa.htm?userid=1234','userid') from file_cto_user_info limit 1;

--substr
set mapred.job.queue.name=hadoop;
select substr('2015-05-04',1,4) from file_cto_user_info limit 1;

相關推薦

hive-常用操作函式

select '我們' from file_cto_user_info limit 1 select 1 from file_cto_user_info where 'football' like 'foot____' limit 1 --注意:否定比較時候用NOT A L

C++的一些小操作常用函式(持續更新)

  1. 強制保留n位小數(位數不足則強制補零)    標頭檔案:    #include <iomanip>    在輸出前:    cout<<setprecision(n);    也有不用標頭檔案的方式,在輸出前:    cout.setf(ios::fixed); 

Rancher常用操作名詞概念解析

開發 隔離 用戶登錄 項目組 做什麽 前言: 關於Rancher安裝請參考Rancher-Server部署,此文操作過程是基於以上部署環境進行演示。關於Rancher是做什麽,能完成哪些功能,有哪些優據點請自行了解。 本文主要介紹以下幾點什麽是環境如何添加環境什麽是應用棧如何添

Rancher常用操作名詞解析

用戶登錄 項目組 做什麽 開發 隔離 前言: 關於Rancher安裝請參考Rancher-Server部署,此文操作過程是基於以上部署環境進行演示。關於Rancher是做什麽,能完成哪些功能,有哪些優據點請自行了解。 本文主要介紹以下幾點什麽是環境如何添加環境什麽是應用棧如何添

Linux 常用操作命令

linux 命令 1. 什麽是linux服務器load average?Load是用來度量服務器工作量的大小,即計算機cpu任務執行隊列的長度,值越大,表明包括正在運行和待運行的進程數越多。參考資料:http://en.wikipedia.org/wiki/Load_average2. 如何查看lin

MongoDB副本集的常用操作原理

Mongodb 大數據 雲計算下面的操作主要分為兩個部分: 修改節點狀態 主要包括: 將Primary節點降級為Secondary節點凍結Secondary節點強制Secondary節點進入維護模式2.?修改副本集的配置 添加節點刪除節點將Secondary節點設置為延遲備份節點將Secondary節點設

Hive常用命令設置

hiveHive常用命令及設置alter table ad_app.app_accounting_daily add columns (return_cost bigint) cascade;數據傾斜set hive.map.aggr=true;set hive.groupby.skewindata=true

Django Models 常用操作問題解決

model.XXX.objects.get()不存在欄位解決方案 如何判斷從表單傳送過來的使用者名稱及密碼是否在資料庫中存在? 使用model.User.objects.get(username = username)的時候如果不存在查詢的值的話將會丟擲一個DoesNotExist的異常 可以

其余數據類型的常用操作內置方法

fault 組類型 類型轉換 end 刪除元素 交集 discard 3.4 包含 一.列表類型list(可變類型,存多個值,有序) 1.類型轉換:可以轉換的類型是可叠代的 2.常用操作: 2.1按索引可以進行取值,也可改寫,當索引不存在時,程序會報錯 2.2追加,插入 l

git常用操作分支

1、github官網註冊賬號,下載gitbash,完成基本配置,推薦開源中國上的一篇部落格:簡單使用Git和Github來管理自己的程式碼和讀書筆記 2、基礎階段常用操作: 知乎上關於git三個區解釋如下: 工作區(working diretory) 用於修改檔案 快取區(stage)

hive操作優化

hive hive案例 1、基站掉線率統計 需求 統計出掉線率最高的前10基站 資料 record_time:通話時間 imei:基站編號 cell:手機編號 drop_num:掉

hive常用的日期函式

## 當前日期和時間 SELECT current_timestamp(); -- 2018-04-28 11:46:03.136 ## 獲取當前日期,當前是 2018-04-28 SELECT current_date; OR SELECT current_date(); -- 2018-04-28 #

Hive-常用操作

前提條件: 安裝好hadoop2.7.3(LInux系統下) 安裝好hive2.3.3(Linux系統下) 安裝好Xampp(Windows系統下),併成功用Navicat連線Xampp Mysql。參考:Navicat連線Xampp資料庫   準備源資料: 1.

MySql:SQL常用操作函式、事物和索引

MySQL是一個關係型資料庫管理系統,在開始學習MySQL資料庫前,讓我們先了解下RDBMS的一些術語: 資料庫: 資料庫是一些關聯表的集合。 資料表: 表是資料的矩陣,在一個數據庫中的表看起來像一個簡單的電子表格。 列:一列(資料元素) 包含了相同的資料,例如郵政編碼

hive常用的一些函式

1.分組後查詢前幾列資料 row_number() over (partition by p_day,uid order by time asc) num num = 1 取第一個,num<=10取分割槽後前十個 2.lag/lead 某一行前/後附近一行的資料 lag(url,1,2001)

Hive操作管理

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的Ma

hive---常用內建函式總結

數學函式:round(四捨五入):ceil(向上取整):floor(向下取整):上面的結果變為45字元函式:lower(轉小寫):upper(轉大寫):length(字串長度,字元數):concat(字串拼接):substr(求子串):substr(a,b):從字串a中,第b

vim(vi)常用操作記憶方法

         vi(vim)可以說是linux中用得最多的工具了,不管你配置服務也好,寫指令碼也好,總會用到它。但是,vim作為一個“純字元”模式下的工具,它的操作和WINDOWS中的文字編輯工具相比多少有些複雜。這裡,我根據自己個人的使用經驗,整理了一套vim的操作以及記憶的方法,希望對大家的學習有

BigInteger 的常用用法函式

如果指定的數與引數相等返回0。如果指定的數小於引數返回 -1。如果指定的數大於引數返回 1。-----------------------------------作者:這是朕的江山連結:https://www.jianshu.com/p/8b89ab19db84來源:簡書著作權歸作者所有。商業轉載請聯絡作者獲

Linux下oracle資料庫常用操作命令

本文出自 "高興F" 部落格,請務必保留此出處http://gaoxingf.blog.51cto.com/612518/121138 Linux下oracle資料庫常用命令 Oracle使用者下執行: $ sqlplus system/manager @ file.s