hive中的udf時間函式用法

2021-06-05 08:41:07 字數 2769 閱讀 5927

1  from_unixtime函式  用法為將時間戳轉換為時間格式

語法: from_unixtime(bigint unixtime[, string format])   返回值為string

例如  hive>select from_unixtime(1326988805,'yyyymmddhh') from test;

如果為字段轉換的話,則為 select from_unixtime(time,'yyyymmddhh') from test;

欄位time如果為string型別,應該轉換為int型別  select from_unixtime(cast(time as int),'yyyymmddhh') from test;

2  語法: unix_timestamp()

返回值: bigint

說明: 獲得當前時區的unix時間戳

舉例:hive> select unix_timestamp() from dual;

1323309615

語法: unix_timestamp(string date)

返回值: bigint

說明: 轉換格式為「yyyy-mm-dd hh:mm:ss「的日期到unix時間戳。如果轉化失敗,則返回0。

舉例:hive> select unix_timestamp(』2011-12-07 13:01:03′) from dual;

1323234063

語法: unix_timestamp(string date, string pattern)

返回值: bigint

說明: 轉換pattern格式的日期到unix時間戳。如果轉化失敗,則返回0。

舉例:hive> select unix_timestamp(』20111207 13:01:03′,』yyyymmdd hh:mm:ss』) from dual;

1323234063

語法: to_date(string timestamp)

返回值: string

說明: 返回日期時間欄位中的日期部分。

舉例:hive> select to_date(』2011-12-08 10:03:01′) from dual;

2011-12-08

語法: year(string date)

返回值: int

說明: 返回日期中的年。

舉例:hive> select year(』2011-12-08 10:03:01′) from dual;

2011

hive> select year(』2012-12-08′) from dual;

2012

語法: month (string date)

返回值: int

說明: 返回日期中的月份。

舉例:hive> select month(』2011-12-08 10:03:01′) from dual;

12hive> select month(』2011-08-08′) from dual;

8語法: day (string date)

返回值: int

說明: 返回日期中的天。

舉例:hive> select day(』2011-12-08 10:03:01′) from dual;

8hive> select day(』2011-12-24′) from dual;

24語法: hour (string date)

返回值: int

說明: 返回日期中的小時。

舉例:hive> select hour(』2011-12-08 10:03:01′) from dual;

10語法: minute (string date)

返回值: int

說明: 返回日期中的分鐘。

舉例:hive> select minute(』2011-12-08 10:03:01′) from dual;

3語法: second (string date)

返回值: int

說明: 返回日期中的秒。

舉例:hive> select second(』2011-12-08 10:03:01′) from dual;

1語法: weekofyear (string date)

返回值: int

說明: 返回日期在當前的週數。

舉例:hive> select weekofyear(』2011-12-08 10:03:01′) from dual;

49語法: datediff(string enddate, string startdate)

返回值: int

說明: 返回結束日期減去開始日期的天數。

舉例:hive> select datediff(』2012-12-08′,』2012-05-09′) from dual;

213語法: date_add(string startdate, int days)

返回值: string

說明: 返回開始日期startdate增加days天後的日期。

舉例:hive> select date_add(』2012-12-08′,10) from dual;

2012-12-18

語法: date_sub (string startdate, int days)

返回值: string

說明: 返回開始日期startdate減少days天後的日期。

舉例:hive> select date_sub(』2012-12-08′,10) from dual;

2012-11-28

Hive中UDF的使用

udf user defined function 是對hive自帶函式的一種補充,並極大擴充了hql的作用範圍,不僅使 更加簡潔,也減少了很多重複工作,提高任務執行效率。udf.rank 該函式用於分組limit輸出,如 拉取每個使用者的前100條語料 需要對使用者cuid進行分組後,再分別取每組...

HIVE中的UDF程式設計

udf 一進一出 udaf 多進一出 aggregation 聚集 類似於count max min udtf 一進多出 show functions 檢視乙個函式的使用 desc function extended upper 1.修改pom.xml junit junit 4.10 test o...

Hive 中自定義UDF函式

在hive中,編寫自定義udf函式,可以幫助我們更輕鬆的做etl。例如,現在我要求某一列資料的平方,在eclipse新建工程,並新建乙個test包,在test包下新建乙個類square public class square extends udf 然後將 打成jar包,如 test01.jar。然...