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)