python寫(xiě)udf函數(shù) python odf

Hsql中使用python的UDF

Author:杜七

邗江網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,邗江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為邗江上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的邗江做網(wǎng)站的公司定做!

先寫(xiě)一個(gè)處理數(shù)據(jù)的腳本,如下:

保存到test.py中,放在本地的任何地方,比如/home/duqi.yc/scripts/python/

excel直接輸入Filter公式可以,用python寫(xiě)進(jìn)去,打開(kāi)文件就報(bào)錯(cuò)?

前面那個(gè)賬號(hào)沒(méi)有財(cái)富值了。換個(gè)賬號(hào)交流。

試了一下,最簡(jiǎn)單的。

ws['A3'].value = '=A1:D1'

打開(kāi)文件不報(bào)錯(cuò),但單元格公式前面自動(dòng)加了@,內(nèi)容只顯示A1內(nèi)容。

我用xlwings寫(xiě)入FILTER函數(shù)不報(bào)錯(cuò),但也同樣現(xiàn)象(公式前自動(dòng)加@,只顯示第一個(gè)單元格內(nèi)容)。

順著這個(gè)一路找下去,這應(yīng)該就是python庫(kù)是否支持處理動(dòng)態(tài)數(shù)組問(wèn)題了。

按我理解,

1)用xlwings或許可以,但得用UDF(自己定義函數(shù)功能),前提還得把xlwings插件安裝到excel里(這就不友好了,我還需要把最后做好的軟件分享給別人用,不能讓人家電腦上也得裝xlwings插件吧)。

2)用xlsxwriter確定可以,可問(wèn)題是xlsxwriter不支持打開(kāi)已有的excel文件,只能新建寫(xiě)入,

所以我本來(lái)的想法是,先選擇一個(gè)區(qū)域單元格為整體,然后寫(xiě)入試試,但沒(méi)找到具體代碼方法。

python寫(xiě)hive的UDF問(wèn)題

你把print寫(xiě)在try里面當(dāng)然會(huì)少數(shù)據(jù)。你應(yīng)該try訪問(wèn)fields數(shù)組并更新fields[2]的值。另一方面,從功能點(diǎn)上來(lái)說(shuō),使用SQL函數(shù)nvl或coalesce就能實(shí)現(xiàn),沒(méi)必要寫(xiě)個(gè)UDF來(lái)實(shí)現(xiàn),你這樣做增加額外的IO消耗和工作量。如果一定要寫(xiě)UDF,建議少用print,改用標(biāo)準(zhǔn)輸出實(shí)現(xiàn):sys.stdout.write()。

hive自定義UDF函數(shù),步驟詳解

UDF函數(shù)是一進(jìn)一出函數(shù),如hive中的substr、date_add、date_sub都是UDF函數(shù)。

hive的udf有 兩種 實(shí)現(xiàn)方式或者實(shí)現(xiàn)的API,一種是 udf 比較簡(jiǎn)單,一種是 GenericUDF 比較復(fù)雜

注意繼承UDF類(lèi)時(shí),不會(huì)報(bào)錯(cuò)、不需要實(shí)現(xiàn)抽象方法,這時(shí)需要我們重寫(xiě)evaluate()方法,而且方法名必須是evaluate。

編寫(xiě)一個(gè)UDF,關(guān)鍵在于自定義Java類(lèi)需要繼承UDF類(lèi)并實(shí)現(xiàn)evaluate()函數(shù)。

因?yàn)樵趆ive客戶(hù)端執(zhí)行查詢(xún)時(shí),對(duì)于 每行輸入 都會(huì)調(diào)用evaluate()函數(shù),evaluate()函數(shù)處理后的值會(huì)返回給hive。

在hive客戶(hù)端,將 xxx HiveUDF.jar 文件加載到類(lèi)路徑:

1) 創(chuàng)建臨時(shí)函數(shù)語(yǔ)法:

2)創(chuàng)建永久函數(shù)語(yǔ)法

參考文章:hive自定義函數(shù)UDF的使用方法

計(jì)算圓面積的函數(shù)

udf(int r)

{

float s;

s=3.1415926*r*r;

return(s);

}

main()

{

int r;

for(r=10;r=20;r++)

printf("%d:%f\n",r,udf(r));

}

udaf可以用python寫(xiě)嗎

Java來(lái)實(shí)現(xiàn)Hive的寫(xiě)法

package jsl.hive.udf;

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

import org.apache.hadoop.io.Text;

public final class DomainRoot extends UDF {

public Text evaluate(Text s) {

if (s == null) {return null;}

String tmp = s.toString();

tmp = this.getDomainRoot(tmp);

return new Text(tmp);

}

private String getDomainRoot(String domain) {

throw NoneImplementException("xxxx");

}

}

如果Java的UDF需要當(dāng)成常用的,不用每次add可以注冊(cè)到Hive中,

ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java中加入

registerUDF("domain_root", UDFParseUrl.class, false);并重新編譯hive即可

下面來(lái)說(shuō)說(shuō)重點(diǎn),通過(guò)Streaming用Python來(lái)寫(xiě)處理。

關(guān)于Streaming的基礎(chǔ)內(nèi)容:

約束:首先必須add file到hive中(當(dāng)python中引用了其他如自己寫(xiě)的模塊時(shí),也需要一并add進(jìn)去)

其次非常不幸,在單獨(dú)的一個(gè)查詢(xún)中,不能夠使用UDAF的函數(shù)如sum()

再次不得為中間結(jié)果數(shù)據(jù)使用cluster by或distribute by

注意:對(duì)于優(yōu)化查詢(xún),使用cluster by或distribute by 和sort by一起非常重要

新聞標(biāo)題:python寫(xiě)udf函數(shù) python odf
文章地址:http://m.kartarina.com/article14/dodeoge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈移動(dòng)網(wǎng)站建設(shè)面包屑導(dǎo)航手機(jī)網(wǎng)站建設(shè)電子商務(wù)微信小程序

廣告

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

成都定制網(wǎng)站建設(shè)
主站蜘蛛池模板: 亚洲 无码 在线 专区| 亚洲日韩VA无码中文字幕| 蜜色欲多人AV久久无码| 无码精品人妻一区二区三区影院| 亚洲人成无码www久久久| 黄桃AV无码免费一区二区三区 | 久久久亚洲精品无码| 亚洲av无码一区二区三区乱子伦| 亚洲AV无码第一区二区三区| 无码人妻丰满熟妇区BBBBXXXX| av无码久久久久不卡免费网站| 最新无码专区视频在线| 亚洲熟妇少妇任你躁在线观看无码| yy111111电影院少妇影院无码| 精品国产v无码大片在线观看 | 波多野结AV衣东京热无码专区| 精品无人区无码乱码大片国产| 曰韩精品无码一区二区三区| 国产做无码视频在线观看| 久久青青草原亚洲AV无码麻豆| 无码137片内射在线影院| 伊人久久综合精品无码AV专区| AV无码人妻中文字幕| 狠狠躁天天躁无码中文字幕图| 日韩乱码人妻无码系列中文字幕| 日韩AV无码精品一二三区| 成人免费午夜无码视频| 无码国内精品人妻少妇蜜桃视频| 久久精品日韩av无码| AAA级久久久精品无码片| 久久老子午夜精品无码怎么打| 无码射肉在线播放视频| 亚洲AV色无码乱码在线观看| 久久久无码中文字幕久...| 中文有码vs无码人妻| 国产AⅤ无码专区亚洲AV| 人妻无码人妻有码中文字幕| 久久久久久国产精品无码下载| 亚洲另类无码专区首页| 无码高潮少妇毛多水多水免费| 精品日韩亚洲AV无码一区二区三区|