解决算子函数返回NULL问题和错误的持久化以及checkpoint的使用

本文介绍了在Spark算子函数中遇到返回NULL的问题及其解决方案,如返回特殊值或使用filter过滤。同时,讨论了错误的RDD持久化方式及其修正方法,并详细阐述了checkpoint的原理和作用,包括如何设置checkpoint目录,何时执行checkpoint操作,以及它如何提高Spark作业的可靠性和可能的性能影响。
摘要由CSDN通过智能技术生成

在算子函数中,返回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),异常

如果碰到你的确是对于某些值,不想要有返回值的话,有一个解决的办法:

1、在返回的时候,返回一些特殊的值,不要返回null,比如“-999”
2、在通过算子获取到了一个RDD之后,可以对这个RDD执行filter操作,进行数据过滤。filter内,可以对数据进行判定,如果是-999,那么就返回false,给过滤掉就可以了。
3、大家不要忘了,之前咱们讲过的那个算子调优里面的coalesce算子,在filter之后,可以使用coales

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值