Spark优化-troubleshooting 解决算子函数返回NULL导致问题
来源:互联网 发布:老友网南宁网络电视台 编辑:程序博客网 时间:2024/04/30 15:57
troubleshooting 解决算子函数返回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),异常
如果碰到你的确是对于某些值,不想要有返回值的话,有一个解决的办法:
1、在返回的时候,返回一些特殊的值,不要返回null,比如“-999”
2、在通过算子获取到了一个RDD之后,可以对这个RDD执行filter操作,进行数据过滤。
filter内,可以对数据进行判定,如果是-999,那么就返回false,给过滤掉就可以了。
3、大家不要忘了,之前咱们讲过的那个算子调优里面的coalesce算子,在filter之后,
可以使用coalesce算子压缩一下RDD的partition的数量,让各个partition的数据比较紧凑一些。
也能提升一些性能。
在算子函数中,返回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的数据比较紧凑一些。
也能提升一些性能。
0 0
- Spark优化-troubleshooting 解决算子函数返回NULL导致问题
- spark troubleshooting--算子函数返回NULL导致问题
- troubleshooting之解决算子函数返回NULL导致的问题
- Spark优化-troubleshooting-解决各种序列化导致的错误
- spark troubleshooting--解决各种序列化导致的错误
- Spark优化-troubleshooting-解决yarn-cluster模式的JVM栈内存溢出问题
- iOS中解决后台返回的null导致的崩溃问题
- 解决返回数据中存在Null而导致的错误问题
- PHP中使用了mcrypt_decrypt函数处理Json串后导致Json_decode返回null问题
- Spark-troubleshooting-yarn-client模式导致的网卡流量激增问题
- spark troubleshooting--yarn-client模式导致的网卡流量激增问题
- 一行代码解决:服务器返回null导致应用崩溃
- getSupportActionBar() 函数总是返回 null 的解决
- Spark core 核心算子优化
- Spark core 核心算子优化
- OPENCV3读取avi,解决返回NULL问题
- troubleshooting之解决yarn-client模式导致的网卡流量激增问题
- mybatis sum函数返回为null的解决方式,格式化小数千分位的问题
- 如何使用MindMapper屏幕捕获功能
- Java synchronized简要总结
- java 线程及synchronized关键字
- CMD-NET命令详解
- JVM(Java虚拟机)优化大全和案例实战
- Spark优化-troubleshooting 解决算子函数返回NULL导致问题
- Java进阶---继承1
- lombok 注解
- 利用cookie实现侧滑菜单,在刷新以后依然保持原来的展开或者收缩样式
- Centos 7 安装 GitLab
- Ambari postgres数据库操作
- Java多线程编程模式实战指南(二):Immutable Object模式
- 内存泄漏及管理(01)-简述GC机制和检测工具
- C#委托使用详解(Delegates)