温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spark1.4源码走读笔记之模式匹配

发布时间:2020-06-15 23:49:49 来源:网络 阅读:472 作者:moviebat 栏目:大数据

RDD里的模式匹配:

def hasNext: Boolean = (thisIter.hasNext, otherIter.hasNext) match {

          case (true, true) => true

          case (false, false) => false

          case _ => throw new SparkException("Can only zip RDDs with " +

            "same number of elements in each partition")

        }


jobResult = jobResult match {

          case Some(value) => Some(f(value, taskResult.get))

          case None => taskResult

        }


    take(1) match {

      case Array(t) => t

      case _ => throw new UnsupportedOperationException("empty collection")

    }

下面的比较好理解:

val len = rdd.dependencies.length

      len match {

        case 0 => Seq.empty

        case 1 =>

          val d = rdd.dependencies.head

          debugString(d.rdd, prefix, d.isInstanceOf[ShuffleDependency[_, _, _]], true)

        case _ => //所有的都到碗里来

          val frontDeps = rdd.dependencies.take(len - 1)

          val frontDepStrings = frontDeps.flatMap(

            d => debugString(d.rdd, prefix, d.isInstanceOf[ShuffleDependency[_, _, _]]))


          val lastDep = rdd.dependencies.last

          val lastDepStrings =

            debugString(lastDep.rdd, prefix, lastDep.isInstanceOf[ShuffleDependency[_, _, _]], true)


          (frontDepStrings ++ lastDepStrings)

      }


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI