val updateFunc2 = (iter:Iterator[(String,Seq[Int],Option[Int])])=>{ iter.map{case (x,y,z) => //由于Some的get方法得到的还是一个Some.所以这里要在用一个get方法 //,如果最开始的时候用的时flatmap那么这里就不用调用get方法,这里可以推测出FlatMap会把Some中的元素取出来 Some(y.sum+z.getOrElse(0)).map(i=>(x,i)).get } // iter.flatMap { case (x, y, z) => Some(y.sum + z.getOrElse(0)).map(i => (x, i)) } }