scala – 在PairRDDFunctions.reduceByKey()中使用’case’
发布时间:2020-12-16 10:00:05 所属栏目:安全 来源:网络整理
导读:这是方法reduceByKey的语法 def reduceByKey(func: (V,V) ? V): RDD[(K,V)] 在我练习的字数统计程序中,我看到这段代码, val counts = words.map(word = (word,1)).reduceByKey{case (x,y) = x + y} 该应用程序使用(x,y)而不是case(x,y).这里的案例有什么用处
这是方法reduceByKey的语法
def reduceByKey(func: (V,V) ? V): RDD[(K,V)] 在我练习的字数统计程序中,我看到这段代码, val counts = words.map(word => (word,1)).reduceByKey{case (x,y) => x + y} 该应用程序使用(x,y)而不是case(x,y).这里的案例有什么用处.我也检查了@ghik here的答案.但是无法理解 解决方法
Scala支持多种定义匿名函数的方法. “case”版本被称为
Pattern Matching Anonymous Functions,它或多或少等同于:
(x: Int,y: Int) => (x,y) match { case (x,y) => x + y } 而没有案例的版本几乎是它的样子: (x: Int,y: Int) => x + y 在这种情况下,简单_ _就足够了: val counts = words.map(word => (word,1)).reduceByKey(_ + _) 当您使用模式匹配时,最简单的情况可能就是当您处理Scala Options时: (x: Option[Int],y: Option[Int]) => (x,y) match { case (Some(xv),Some(yv)) => xv + yv case (Some(xv),_) => xv case (_,Some(yv)) => yv case _ => 0 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |