Hive自定義函式(字母大小寫轉換)

2021-08-17 06:13:48 字數 1838 閱讀 3198

自定義hive的函式,首先需要繼承udf類,然後定義方法名字為evaluate的方法,該方法不能設定void,如果需要返回為空,可以返回為null.

乙個簡單的大小寫轉換案例

特別注意看注釋

package com.madman.hive.function;

import org.apache.hadoop.hive.ql.exec.udf;

import org.apache.hadoop.io.intwritable;

import org.apache.hadoop.io.text;

/** * 注釋很重要。。

* 看注釋。

* 看注釋

* 看英文注釋。。。。。。。。。

* */

/** * a user-defined function (udf) for the use with hive.

* * new udf classes need to inherit from this udf class.

* * required for all udf classes: 1. implement one or more methods named

* "evaluate" which will be called by hive. the following are some examples:

* public int evaluate(); public int evaluate(int a); public double evaluate(int

* a, double b); public string evaluate(string a, int b, string c);

* * "evaluate" should never be a void method. however it can return "null" if

* needed.

*//**

* 需求:轉換大小寫,0代表小寫,1代表大寫,預設轉換小寫

* *@author ibf

* */

public

class

hivefunction

extends

udf

public text evaluate(text str, intwritable flag) else

if (flag.get() == 1) else

return

null;

} else

return

null;

}public

static

void

main(string args)

}

大概步驟

繼承udf類,import org.apache.hadoop.hive.ql.exec.udf;

寫完程式,打jar包(指定main類)上傳到linux系統中與jar包進行關聯

add jar /opt/moduels/alldata/udf.jar;

建立function函式方法 create temporary function my_udf as 'com.madman.hive.function.hivefunction';後面這個就是你的類路勁

測試:執行將emp表中的ename全部轉換成小寫

select ename,my_udf(ename) low_ename from emp;

python 字母 數字 大小寫相關函式

coding utf 8 example peace and love print example.isupper 所有字元都是大寫,真返回true,假返回false print example.upper 把所有字元中的小寫字母轉換成大寫字母 print example.islower 所有字元都...

FastReport 金額大小寫轉換自定義函式

在fastreport中編寫金額數字轉換大寫自定義函式 function moneytocharacter money real string 數字轉換為中文大寫 vartemp string resu string i,j integer len integer num array 0.9 of ...

判斷大小寫字母 判斷數字

1.isalpha 判斷乙個字元是否為字母,如果是則返回非零,否則返回零。qstring data a1 qdebug data 0 isalpha 列印非0 qdebug data 1 isalpha 列印0 2.isalnum 判斷乙個字元是否為數字或者字母,是否屬於a z a z 0 9。qd...