【问题标题】:how to get the value from a key,value form a map reduce job in scala如何从键中获取值,从scala中的mapreduce作业中获取值
【发布时间】:2021-03-09 12:24:53
【问题描述】:

我正在尝试从 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)

【问题讨论】:

  • 您可能应该使用 reduceByKeyLocally 来生成可以查询的本地 Scala Map
  • 我该如何查询?
  • 使用Map提供的任何操作,如map("key")map.get("key")map.getOrElse("key", default = 0)检查scaladoc - 帮自己一个忙,至少学习一下基础Scala 在使用像 Spark 这样大而复杂的东西之前。

标签: scala apache-spark mapreduce rdd


【解决方案1】:

你试过用过滤器吗?

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)

【讨论】:

  • 返回 (hinein.,11),然后我如何将 11 分配给 val?
猜你喜欢
  • 2021-07-22
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 2018-03-06
  • 2018-02-04
  • 1970-01-01
相关资源
最近更新 更多