scala – 从mapValues或flatMapValues访问键?
发布时间:2020-12-16 18:22:52 所属栏目:安全 来源:网络整理
导读:在Spark 1.3中,有没有办法从mapValues访问密钥? 具体来说,如果我有 val y = x.groupBy(someKey)val z = y.mapValues(someFun) someFun可以知道它目前在哪个关键操作? 或者我必须这样做 val y = x.map(r = (someKey(r),r)).groupBy(_._1)val z = y.mapValue
在Spark 1.3中,有没有办法从mapValues访问密钥?
具体来说,如果我有 val y = x.groupBy(someKey) val z = y.mapValues(someFun) someFun可以知道它目前在哪个关键操作? 或者我必须这样做 val y = x.map(r => (someKey(r),r)).groupBy(_._1) val z = y.mapValues{ case (k,r) => someFun(r,k) } 注意:我想使用mapValues而不是map的原因是为了保留分区. 解决方法
您不能将该键与mapValues一起使用.但是您可以使用mapPartitions保留分区.
val pairs: Rdd[(Int,Int)] = ??? pairs.mapPartitions({ it => it.map { case (k,v) => // your code } },preservesPartitioning = true) 小心实际保留分区,编译器将无法检查它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |