For循环中不可以嵌套RDD操作
生活随笔
收集整理的这篇文章主要介绍了
For循环中不可以嵌套RDD操作
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
今天犯了一个致命理解错误,Spark中的RDD Map操作只是一个计算式的传递,并不是Action,也就是在for循环中不会产生真正的计算。
因此,如果for循环中出现了RDD的Map类似操作,都会引起异常,例如栈溢出等等,属于相互引用错误。
把我的错误代码贴在下面,加深理解。
List<String> list = new ArrayList<>();list.add("OK1");JavaRDD<String> temp = jsc.parallelize(list);for (int i=0; i<num; i++) {for (int j=i+1; j<num; j++) {List<String> list2 = new ArrayList<>();list2.add("OK2");temp = temp.union(jsc.parallelize(list2));}}List<String> list3 = temp.collect();
转载于:https://www.cnblogs.com/shixiangwan/p/6379710.html
总结
以上是生活随笔为你收集整理的For循环中不可以嵌套RDD操作的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 关于vue,angularjs1,rea
- 下一篇: UVa 1632 阿里巴巴(区间DP)