一、简单介绍
RDD的join操作,如果存在有join的RDD为空,则计算后的结果也将是空的。
二、问题与排错
原先写好的Spark Driver,运行的好好的,亲测运行的结果与预期也是一致的,但是今天测试人员反映数据不对,有缺少计算出来的数据,嘿,程序员的第一反应(内心):这是不可能的事情,我自己都测试过了,是不是你自己搞错测试数据了。于是接下来就是一个证明谁错误的过程——找测试人员要了没有计算到的测试数据,然后运行调试,汗——真的没有输出结果,而且程序没有报错,这说明程序语法和环境没有问题,应该是数据处理的业务逻辑出了问题,那就开始找问题吧。
看了运行日志,有所发现:
16/12/26 16:54:20 INFO DAGScheduler: Submitting 2 missing tasks from ResultStage 11 (MapPartitionsRDD[59] at map at MyApplication.scala:91)