http://spark.apache.org/docs/latest/rdd-programming-guide.html#understanding-closures-
把这段理解了,上面的问题就动了
出了foreach的大括号 ArrayBuffer的生命周期就结束了
问:那该用什么算子达到我要的效果啊
答1:你声明的变量是driver端的,executor使用的话会实例化通过网络传过去,但是在task结束的时候,这个改变的内容是跟着jvm销毁了,并不会传回给driver其实你在这里看的是一个,其实是两个不同的对象
答2: sourceRDD.foreachPartition{x =>
val mutator = conn.getBufferedMutator(table)
x.foreach{rowkey => mutator.delete(rowkey)}
mutator.close
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。