hive內建函數:1、使用者自訂函數對資料進行處理;2、用來解決輸入一行輸出多行【(On-to-many maping)】的需求;3.使用者自訂聚合函數,操作多個資料行,產生一個資料行。
本文操作環境:Windows7系統,Dell G3電腦。
hive內建函數:
定義:
UDF(User-Defined-Function),使用者自訂函數對數據進行處理。
UDTF(User-Defined Table-Generating Functions) 用來解決 輸入一行輸出多行(On-to-many maping) 的需求。
UDAF(User Defined Aggregation Function)使用者自訂聚合函數,操作多個資料行,產生一個資料行。
用法:
1、UDF函數可以直接套用於select語句,對查詢結構做格式化處理後,再輸出內容。
2、寫UDF函數的時候需要注意一下幾點:
a)自訂UDF需要繼承org.apache.hadoop.hive.ql.UDF
。
b)需要實作evaluate函。
c)evaluate函數支援重載。
hive的本地模式:
大多數的Hadoop job是需要hadoop提供的完整的可擴展性來處理大數據的。不過,有時hive的輸入資料量是非常小的。在這種情況下,為查詢出發執行任務的時間消耗可能會比實際job的執行時間要多的多。對於大多數這種情況,hive可以透過本機模式在單一機器上處理所有的任務。對於小資料集,執行時間會明顯縮短。
如此一來,對資料量比較小的操作,就可以在本地執行,這樣要比提交任務到叢集執行效率要快很多。
配置如下參數,可以開啟Hive的本地模式:
hive> set hive.exec.mode.local.auto=true;(默认为false)
當一個job滿足如下條件才能真正使用本地模式:
1.job的輸入資料大小必須小於參數:hive.exec.mode.local.auto.inputbytes.max(預設128MB)
# 2.job的map數必定小於參數: .local.auto.tasks.max(預設4)
3.job的reduce數必須為0或1
#相關免費學習推薦:php程式設計(影片)
以上是hive內建函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!