欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SparkHive如何自定義函數(shù)應(yīng)用

這篇文章主要介紹了Spark Hive如何自定義函數(shù)應(yīng)用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián),為您提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對服務(wù)成都人造霧等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

1. 簡介

Spark目前支持UDF,UDTF,UDAF三種類型的自定義函數(shù)。UDF使用場景:輸入一行,返回一個(gè)結(jié)果,一對一,比如定義一個(gè)函數(shù),功能是輸入一個(gè)IP地址,返回一個(gè)對應(yīng)的省份。UDTF使用場景: 輸入一行,返回多行(hive),一對多, 而sparkSQL中沒有UDTF, spark中用flatMap即可實(shí)現(xiàn)該功能。UDAF: 輸入多行,返回一行, aggregate(主要用于聚合功能,比如groupBy,count,sum), 這些是spark自帶的聚合函數(shù),但是復(fù)雜相對復(fù)雜。

Spark底層其實(shí)以CatalogFunction結(jié)構(gòu)封裝了一個(gè)函數(shù),其中FunctionIdentifier描述了函數(shù)名字等基本信息,F(xiàn)unctionResource描述了文件類型(jar或者file)和文件路徑;Spark的SessionCatalog提供了函數(shù)注冊,刪除,獲取等一些列接口,Spark的Executor在接收到函數(shù)執(zhí)行sql請求時(shí),通過緩存的CatalogFunction信息,找到CatalogFunction中對應(yīng)的jar地址以及ClassName, JVM動(dòng)態(tài)加載jar,并通過ClassName反射執(zhí)行對應(yīng)的函數(shù)。

Spark Hive如何自定義函數(shù)應(yīng)用

?圖1. CatalogFunction結(jié)構(gòu)體

Spark Hive如何自定義函數(shù)應(yīng)用

?圖2. 注冊加載函數(shù)邏輯

Hive的HiveSessionCatalog是繼承Spark的SessionCatalog,對Spark的基本功能做了一層裝飾以適配Hive的基本功能,其中包括函數(shù)功能。HiveSimpleUDF對應(yīng)UDF,HiveGenericUDF對應(yīng)GenericUDF,HiveUDAFFunction對應(yīng)AbstractGenericUDAFResolve以及UDAF,HiveGenericUDTF對應(yīng)GenericUDTF

Spark Hive如何自定義函數(shù)應(yīng)用

圖3. Hive裝飾spark函數(shù)邏輯

2. UDF

UDF是最常用的函數(shù),使用起來相對比較簡單,主要分為兩類UDF:簡單數(shù)據(jù)類型,繼承UDF接口;復(fù)雜數(shù)據(jù)類型,如Map,List,Struct等數(shù)據(jù)類型,繼承GenericUDF接口。

簡單類型實(shí)現(xiàn)UDF時(shí),可自定義若干個(gè)名字evaluate為的方法,參數(shù)和返回類型根據(jù)需要自己設(shè)置。因?yàn)閁DF接口默認(rèn)使用DefaultUDFMethodResolver去方法解析器獲取方法,解析器是根據(jù)用戶輸入?yún)?shù)和寫死的名字evaluate去反射尋找方法元數(shù)據(jù)。當(dāng)然用戶也可以自定義解析器解析方法。

Spark Hive如何自定義函數(shù)應(yīng)用

圖4. 自定義UDF簡單示例

Spark Hive如何自定義函數(shù)應(yīng)用

圖5.默認(rèn)UDF方法解析器

3. UDAF

UDAF是聚合函數(shù),目前實(shí)現(xiàn)方式主要有三種:實(shí)現(xiàn)UDAF接口,比較老的簡答實(shí)現(xiàn)方式,目前已經(jīng)被廢棄;實(shí)現(xiàn)UserDefinedAggregateFunction,目前使用比較普遍方式,按階段實(shí)現(xiàn)接口聚集數(shù)據(jù);實(shí)現(xiàn)AbstractGenericUDAFResolver,實(shí)現(xiàn)相對UserDefinedAggregateFunction方式稍微復(fù)雜點(diǎn),還需要實(shí)現(xiàn)一個(gè)計(jì)算器Evaluator(如通用計(jì)算器GenericUDAFEvaluator),UDAF的邏輯處理主要發(fā)生在Evaluator。

UserDefinedAggregateFunction定義輸入輸出數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)初始化緩沖區(qū)(initialize),聚合單條數(shù)據(jù)(update),聚合緩存區(qū)(merge)以及計(jì)算最終結(jié)果(evaluate)。

Spark Hive如何自定義函數(shù)應(yīng)用

Spark Hive如何自定義函數(shù)應(yīng)用

圖6.自定義UDAF簡單示例

4. UDTF

UDTF簡單粗暴的理解是一行生成多行的自動(dòng)函數(shù),可以生成多行多列,又被稱為表生成函數(shù)。目前實(shí)現(xiàn)方式是實(shí)現(xiàn)GenericUDTF接口,實(shí)現(xiàn)2個(gè)接口,initialize接口參數(shù)校驗(yàn),列的定義,process接口接受一行數(shù)據(jù),切割數(shù)據(jù)。

Spark Hive如何自定義函數(shù)應(yīng)用

Spark Hive如何自定義函數(shù)應(yīng)用

圖7.自定義UDTF簡單示例

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Spark Hive如何自定義函數(shù)應(yīng)用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

分享文章:SparkHive如何自定義函數(shù)應(yīng)用
文章路徑:http://aaarwkj.com/article26/gjdecg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作建站公司、電子商務(wù)、App設(shè)計(jì)、軟件開發(fā)、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
中文字幕午夜av福利| 91麻豆精品国产久久久| 日韩在线视频观看一区二区三区| av丰满人妻一区二区| 国产午夜亚洲精品羞羞网站| 九九在线视频免费观看精品视频| 国产超码片内射在线| 日日摸夜夜添添出白浆| 有码精品视频在线观看| 国产麻豆精品免费喷白浆视频网站 | 亚洲中文字幕精品一区二区三区| 天堂中文字幕在线乱码一区| 中文字幕在线不卡精品视频| 永久永久免费黄色一级片| 亚洲国产欧美在线91| 未满18禁止观看在线| 成人偷拍自拍在线视频| 不卡一区二区三区av电影| 午夜男女激情在线观看| 久久热视频这里有精品| 久久精品一区二区婷婷| 久久久久久精品国产免费| 日韩乱码高清一本免费啪| 国产精品18禁一区二区三区| 十八禁真人无摭挡观看| 亚洲激情欧美日韩精品| 很黄无遮挡在线免费网站| 欧美在线免费一级黄片| 男人天堂一区二区av| 尤物在线免费观看视频| 黄片大全视频在线免费观看| 国产日韩精品欧美综合区| 日韩成人午夜视频在线| 欧美日韩一区二区三区色| 亚洲日本国产精品一区| 毛茸茸的阴户在线观看| 国产三级全黄在线播放| 极品人妻视频中文字幕| 人人澡人人看人人妻| 精品av一区二区在线| 色偷偷91综合久久噜噜|