詳解 HiveUDF 函數(shù)

更多精彩原創(chuàng)內容請關注:JavaInterview账锹,歡迎 star狡赐,支持鼓勵以下作者盈魁,萬分感謝栏豺。

Hive 函數(shù)

相信大家對 Hive 都不陌生彬碱,那么大家肯定用過 Hive 里面各種各樣的函數(shù)”疲可能大家都會使用這些函數(shù)堡妒,但是沒有自己動手去寫過 Hive 里面的函數(shù)。下面主要來介紹一下 Hive 里面的各種函數(shù)溉卓。

依賴

開發(fā) Hive UDF 之前,我們需要引入一個 jar搬泥,這個 jar 就是 hive-exec桑寨,里面定義了各種我們自定義的 UDF 函數(shù)的類型:UDF、GenericUDF忿檩、GenericUDTF 等尉尾。


 <dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-exec</artifactId>
    <version>2.1.1</version>
 </dependency>

UDF(User-Defined-Function)

UDF:用戶自定義函數(shù),也是實現(xiàn)起來最簡單的一種函數(shù)燥透。支持的就是一進一出類型的函數(shù)沙咏。

如何實現(xiàn)?

具體代碼實現(xiàn):


@Description(
        name = "ip2loc",
        value = "_FUNC_(str) - covert ip to location",
        extended = "Example:\n" +
                "  > SELECT ip2loc(ip) FROM ips;\n" +
                "  [中國,上海]"
)
public class IPToLocation extends UDF {
    
    private static final InputStream stream = IPToLocation.class.getClassLoader().getResourceAsStream("ipipfree.ipdb");
    private static City db = null;

    static {
        try {
            db = new City(stream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 具體實現(xiàn)邏輯
    public ArrayList<String> evaluate(Text s) throws IOException, IPFormatException {
        ArrayList<String> allTexts = new ArrayList<>();
        if (s != null) {
            CityInfo info = db.findInfo(s.toString(), "CN");
            allTexts.add(info.getCountryName());
            allTexts.add(info.getRegionName());
            allTexts.add(info.getCityName());
        }
        return allTexts;
    }

}

@Description 為該 UDF 的描述吱韭,你可以通過命令 desc function ip2loc查看具體的描述吆豹;如下圖:

hive-udf-1.png

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子痘煤,更是在濱河造成了極大的恐慌凑阶,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衷快,死亡現(xiàn)場離奇詭異宙橱,居然都是意外死亡,警方通過查閱死者的電腦和手機蘸拔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門养匈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人都伪,你說我怎么就攤上這事呕乎。” “怎么了陨晶?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵猬仁,是天一觀的道長。 經(jīng)常有香客問我先誉,道長湿刽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任褐耳,我火速辦了婚禮诈闺,結果婚禮上,老公的妹妹穿的比我還像新娘铃芦。我一直安慰自己雅镊,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布刃滓。 她就那樣靜靜地躺著仁烹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咧虎。 梳的紋絲不亂的頭發(fā)上卓缰,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音砰诵,去河邊找鬼征唬。 笑死,一個胖子當著我的面吹牛茁彭,可吹牛的內容都是我干的总寒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尉间,長吁一口氣:“原來是場噩夢啊……” “哼偿乖!你這毒婦竟也來了击罪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤贪薪,失蹤者是張志新(化名)和其女友劉穎媳禁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體画切,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡竣稽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了霍弹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毫别。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖典格,靈堂內的尸體忽然破棺而出岛宦,到底是詐尸還是另有隱情,我是刑警寧澤耍缴,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布砾肺,位于F島的核電站,受9級特大地震影響防嗡,放射性物質發(fā)生泄漏变汪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一蚁趁、第九天 我趴在偏房一處隱蔽的房頂上張望裙盾。 院中可真熱鬧,春花似錦他嫡、人聲如沸番官。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲤拿。三九已至,卻和暖如春署咽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背生音。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工宁否, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缀遍。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓慕匠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親域醇。 傳聞我的和親對象是個殘疾皇子台谊,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353