原来的代码:

 JavaRDD<ArticleReply> javaRdd = rdd.flatMap(new FlatMapFunction<String, ArticleReply>() {
private static final long serialVersionUID = 10000L;
List<ArticleReply> newList = new ArrayList<ArticleReply>();
public Iterable<ArticleReply> call(String line) throws Exception {
String[] splits = line.split("\t");
ArticleReply bean = new ArticleReply();
bean.setAreaId(split[0]);
bean.setAgent(Integer.parseInt(splits[1]));
bean.setSerial(splits[2]);
newList.add(bean);
return newList;
}
});

正确写法:

 JavaRDD<ArticleReply> javaRdd = rdd.flatMap(new FlatMapFunction<String, ArticleReply>() {
            private static final long serialVersionUID = 10000L;

            public Iterable<ArticleReply> call(String line) throws Exception {
         List<ArticleReply> newList = new ArrayList<ArticleReply>();
String[] splits = line.split("\t");
ArticleReply bean = new ArticleReply();
bean.setAreaId(split[0]);
bean.setAgent(Integer.parseInt(splits[1]));
bean.setSerial(splits[2]);
newList.add(bean);
return newList;
}
});

错误的写法中把list声明和初始化在flatMap函数之外,造成每次调用flatMap函数后,list的bean会增加一个,同时程序会将改list返还回去,那么spark接收的对象1+2+3+...+N个,

而不是N个,会极大地消耗spark的内存,造成spark运行内存不足。

最新文章

  1. 舍弃Nunit拥抱Xunit
  2. AVL树
  3. Spring MVC 3.0 深入及对注解的详细讲解
  4. fontcreator制作iconfont(包含两个教程)
  5. ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)
  6. Spring MVC 上传文件
  7. struts checkbox选中
  8. Discuz! X3.1去除内置门户导航/portal.php尾巴的方法
  9. c语言编程之栈(链表实现)
  10. 环境监测小助手V1.1的Windows版
  11. java20 创建服务器:ServerSocket
  12. ping and traceroute(tracert)
  13. tomcat组成及原理[转]
  14. 在调试安卓系统的时候需要这个 ”adb disable-verity“
  15. 抛弃vue-resource拥抱axios
  16. 社交系统ThinkSNS+安装部署演示
  17. c3p0配置文件
  18. 深入理解ajax系列第八篇——表单提交
  19. lua io操作(一)
  20. 深度优先搜索(DFS)----------------Tju_Oj_3517The longest athletic track

热门文章

  1. BloomFilter理解
  2. 如何进行CodeReview
  3. h5标签兼容
  4. 第11章 拾遗1:网络地址转换(NAT)和端口映射
  5. Kafka分布式集群部署
  6. Wsgi的web框架实例
  7. webstorm命令行无法使用node-gyp进行编译
  8. linux 乌班图 安装pycharm
  9. python协程的使用
  10. gentoo rt-thread scons --menuconfig libs/lxdialog/util.o: undefined reference to symbol &#39;nodelay&#39;