文档章节

troubleshooting 解决算子函数返回NULL导致问题

crayzer_yixiu
 crayzer_yixiu
发布于 2016/10/30 17:48
字数 302
阅读 57
收藏 0

在算子函数中,返回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之后,可以使用coalesce算子压缩一下RDD的partition的数量,让各个partition的数据比较紧凑一些。也能提升一些性能。

© 著作权归作者所有

crayzer_yixiu
粉丝 26
博文 57
码字总数 87921
作品 0
杭州
高级程序员
私信 提问
spark优化和故障排除

http://spark.apache.org/docs/1.6.2/tuning.html http://blog.csdn.net/anzhsoft/article/details/42417533 1、算子优化、filter + coalecse filter不进行重新分区,coalecse是进行重新分区......

captainliu
2016/11/13
414
0
troubleshooting 解决各种序列化导致的错误

你会看到什么样的序列化导致的报错? 用client模式去提交spark作业,观察本地打印出来的log。如果出现了类似于Serializable、Serialize等等字眼,报错的log,那么恭喜大家,就碰到了序列化问...

SET
2016/10/30
44
0
spark-JVM调优原理

性能调优 常规性能调优:分配资源、并行度。。。等 JVM调优(Java虚拟机):JVM相关的参数,通常情况下,如果你的硬件配置、基础的JVM的配置,都可以的话,JVM通常不会造成太严重的性能问题;...

SET
2016/10/29
485
0
Spark常用的算子以及Scala函数总结

Spark与Scala 首先,介绍一下scala语言: Scala 是一种把面向对象和函数式编程理念加入到静态类型语言中的混血儿。 为什么学scala? spark提供了R、Python等语言的接口,为什么还要重新学一门...

流川枫AI
2017/12/24
0
0
SparkTask未序列化问题

为了执行作业,Spark将RDD操作的处理分解为tasks,每个task由Executor执行。在执行之前,Spark会计算task的闭包。闭包是Executor在RDD上进行计算的时候必须可见的那些变量和方法(在这种情况...

张欢19933
2017/02/07
75
0

没有更多内容

加载失败,请刷新页面

加载更多

每天AC系列(六):有效的括号

1 题目 LeetCode第20题,这题比较简单,匹配括号. 2 栈 这是栈的典型应用,括号匹配,当然不需要直接使用栈,使用一个StringBuilder即可: if(s.isEmpty()) return true;char a = s.charAt(0);...

Blueeeeeee
今天
27
0
Spring AOP-06-切入点类型

切入点是匹配连接点的拦截规则。之前使用的是注解@Pointcut,该注解是AspectJ中的。除了这个注解之外,Spring也提供了其他一些切入点类型: • 静态方法切入点StaticMethodMatcherPointcut •...

moon888
昨天
90
0
Class Loaders in Java

1. Introduction to Class Loaders Class loaders are responsible for loading Java classes during runtime dynamically to the JVM (Java Virtual Machine). Also, they are part of the ......

Ciet
昨天
96
0
以Lazada为例,看电商系统架构演进

什么是Lazada? Lazada 2012年成立于新加坡,是东南亚第一电商,2016年阿里投资10亿美金,2017年完成对lazada的收购。 业务模式上Lazada更偏重自营,类似于亚马逊,自建仓储和为商家提供服务...

春哥大魔王的博客
昨天
62
0
【自用】 Flutter Timer 简单用法

dart: void _startTime() async { _timer = Timer(Duration(seconds: sec), () { fun(xxx,yyy,zzz); }); } @override void dispose() { _timer.cancel()......

Tensor丨思悟
昨天
65
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部