hive udf函數(shù)編寫(xiě) hive自定義udf函數(shù),在udf函數(shù)內(nèi)怎么讀取hive表數(shù)據(jù)?
hive自定義udf函數(shù),在udf函數(shù)內(nèi)怎么讀取hive表數(shù)據(jù)?最近,我感覺(jué)到蜂巢的自定義項(xiàng)功能強(qiáng)大的力量。我不僅可以使用許多現(xiàn)有的自定義項(xiàng)函數(shù),還可以根據(jù)業(yè)務(wù)場(chǎng)景定義自定義項(xiàng)函數(shù)。現(xiàn)在我們來(lái)談?wù)勅绾?/p>
hive自定義udf函數(shù),在udf函數(shù)內(nèi)怎么讀取hive表數(shù)據(jù)?
最近,我感覺(jué)到蜂巢的自定義項(xiàng)功能強(qiáng)大的力量。我不僅可以使用許多現(xiàn)有的自定義項(xiàng)函數(shù),還可以根據(jù)業(yè)務(wù)場(chǎng)景定義自定義項(xiàng)函數(shù)?,F(xiàn)在我們來(lái)談?wù)勅绾尉帉?xiě)UDF/udaf/udtf函數(shù),這可以看作是一個(gè)介紹。
首先,您需要?jiǎng)?chuàng)建一個(gè)擴(kuò)展UDF的新類(lèi),其中包含一個(gè)或多個(gè)名為evaluate的方法。
packagecom.example.hive配置單元.udf
導(dǎo)入org.apache.hadoop下載. 配置單元.ql.exec.UDF
導(dǎo)入org.apache.hadoop下載. io.文本
public final class Lower extends UDF{
public Text evaluate(final Text s){
if(s==null){return null}
return new Text(s.toString().toLowerCase())
}
將代碼編譯到j(luò)ar后,需要將其添加到配置單元類(lèi)路徑。
add jar myujar.jar文件
一旦蜂巢啟動(dòng),您的jars在類(lèi)路徑中,最后一步是注冊(cè)你的函數(shù)
創(chuàng)建臨時(shí)函數(shù)mylower as“com.example.hive配置單元. 自定義項(xiàng)下限上面主要描述了實(shí)現(xiàn)自定義項(xiàng)的過(guò)程。首先,實(shí)現(xiàn)一個(gè)UDF函數(shù)是很自然的,然后將它編譯成jar并添加到hive的類(lèi)路徑中,最后創(chuàng)建一個(gè)臨時(shí)變量名在hive中調(diào)用。重印僅供參考。