首页 > 解决方案 > 如何从键中获取值,值从scala中的map reduce作业中获取

问题描述

我正在尝试从 map-reduce 工作中获取价值,即来自 hinein 的 11。

(mutuelle,1)
(hinein.,11)
(Pfennig,1)

我可以打印出所有的值,但我如何才能找到特定的值?

val counts = books.flatMap(line => line.split(" "))
val MappedRDD = counts.map(word => (word, 1))
val myReducedRDD = MappedRDD.reduceByKey(_ + _)
//myReducedRDD.collect().foreach(println)
val rdd2 = myReducedRDD.map(f => (f))
rdd2.foreach(println)

标签: scalaapache-sparkmapreducerdd

解决方案


您是否尝试过使用过滤器?

val myReducedRDD = MappedRDD.reduceByKey(_ + _)

myReducedRDD
  .filter { case (key, value) => key == "hinein" }
  .map { case (key, value) => value } // also can use .map(_._2)
  .foreach(println)


// to assign to val
val result = myReducedRDD
  .filter { case (key, value) => key == "hinein" }
  .map { case (key, value) => value } 
  .collect()(0)

推荐阅读