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

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黄色成人在线观看| 国产精品国产三级国产专区 | 青青草原一区二区三区| 亚洲女久久久噜噜噜综合| 国产精品又大又黑又长又粗| 亚洲午夜福利理论片在线| 日韩亚洲人成网站在线播放 | 五月婷婷亚洲激情综合网| av高清不卡一区二区免费在线| 欧美亚洲国产精品久久久| 亚洲中文字幕av天堂久久| 国产一区二区三区婷婷| 亚洲另类欧美日韩中文字幕| 欧美日韩黄色的三级视频| 性感美女国产精品一区二区| 福利视频免费观看欧美| 91九色视频官网在线观看| 日韩黄片大全在线观看| 亚洲精品欧美激情专区| 久久亚洲综合色一区二区三区| 色欧美一区二区三区在线| 不卡av免费在线网址| av熟女一区二区三区| 日本不卡一区二区三区四| 亚洲日本乱码一区二区三| 女同伦理视频在线观看| 日本免费一区二区三区等视频| 蜜臀在线免费观看黄片视频| 午夜福利亚洲免费久久| 少妇一夜一次一区二区|