您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么解決算子函數返回NULL導致問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在算子函數中,返回null
return actionRDD.mapToPair(new PairFunction<Row, String, Row>() { private static final long serialVersionUID = 1L; @Override public Tuple2<String, Row> call(Row row) throws Exception { return new Tuple2<String, Row>("-999", RowFactory.createRow("-999")); } });
大家可以看到,在有些算子函數里面,是需要我們有一個返回值的。但是,有時候,我們可能對某些值,
就是不想有什么返回值。我們如果直接返回NULL的話,會報錯的!!!
Scala.Math(NULL),異常
如果碰到你的確是對于某些值,不想要有返回值的話,有一個解決的辦法:
在返回的時候,返回一些特殊的值,不要返回null,比如“-999”
在通過算子獲取到了一個RDD之后,可以對這個RDD執行filter操作,進行數據過濾。filter內,可以對數據進行判定,如果是-999,那么就返回false,給過濾掉就可以了。
大家不要忘了,之前咱們講過的那個算子調優里面的coalesce算子,在filter之后,可以使用coalesce算子壓縮一下RDD的partition的數量,讓各個partition的數據比較緊湊一些。也能提升一些性能。
看完上述內容,你們對怎么解決算子函數返回NULL導致問題有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。