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

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è)
亚洲人妻激情一区二区| 男女视频一区二区三区在线观看| 后入动漫视频在线观看| 中文字幕亚洲精品四区| 91欧美视频在线观看| 欧美老熟妇子乱视频在线| 最近免费欧美一级黄片| 日韩精品在线观看天堂| 亚洲人妻乱人伦中文字幕在线| 亚洲精品国产二区中文字幕| 国产精品三级一区二区三区| 中文字幕精品一区二区三区视频| 伊人亚洲一区二区三区| 一区二区在线视频中文字幕| 麻豆精品午夜福利在线| 日韩在线视频观看一区二区三区| 99亚洲综合一区二区三区| 免费国产成人在线视频| 亚洲国产欧美日韩在线一区| 亚洲天堂av在线播放| 热久久精品只有这里有| 男女裸体做爰一进一出视频| 91精品免费播放在线观看| 午夜91激情福利视频| 下一篇亚洲一区二区三区| 裸体性做爰免费视频网站| 熟妇人妻内射一区二区三区| 日本久久在线观看视频| 国内丰满少妇嗷嗷叫在线播放| 日本一区二区视频播放网站| 国产亚洲综合一区二区三区| 色婷婷综合激情一区二区| 日日爱欧美精品亚洲成| 国产日韩欧美亚洲中文| 日日夜夜久久一二三区| 91久久一区二区秋霞免费| 久久久久久国产精彩视频| 日本中文字幕免费一区| 亚洲综合国产中文字幕| 亚洲三区久久婷婷激情| av剧情网址在线观看|