今天就跟大家聊聊有關(guān)怎么解決算子函數(shù)返回NULL導(dǎo)致問(wèn)題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比蓮池網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式蓮池網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋蓮池地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴(lài)。
在算子函數(shù)中,返回null
return actionRDD.mapToPair(new PairFunction() { private static final long serialVersionUID = 1L; @Override public Tuple2
call(Row row) throws Exception { return new Tuple2 ("-999", RowFactory.createRow("-999")); } });
大家可以看到,在有些算子函數(shù)里面,是需要我們有一個(gè)返回值的。但是,有時(shí)候,我們可能對(duì)某些值,
就是不想有什么返回值。我們?nèi)绻苯臃祷豊ULL的話,會(huì)報(bào)錯(cuò)的!?。?/p>
Scala.Math(NULL),異常
如果碰到你的確是對(duì)于某些值,不想要有返回值的話,有一個(gè)解決的辦法:
在返回的時(shí)候,返回一些特殊的值,不要返回null,比如“-999”
在通過(guò)算子獲取到了一個(gè)RDD之后,可以對(duì)這個(gè)RDD執(zhí)行filter操作,進(jìn)行數(shù)據(jù)過(guò)濾。filter內(nèi),可以對(duì)數(shù)據(jù)進(jìn)行判定,如果是-999,那么就返回false,給過(guò)濾掉就可以了。
大家不要忘了,之前咱們講過(guò)的那個(gè)算子調(diào)優(yōu)里面的coalesce算子,在filter之后,可以使用coalesce算子壓縮一下RDD的partition的數(shù)量,讓各個(gè)partition的數(shù)據(jù)比較緊湊一些。也能提升一些性能。
看完上述內(nèi)容,你們對(duì)怎么解決算子函數(shù)返回NULL導(dǎo)致問(wèn)題有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。