2

我如何使用 Spark scala 遍历 RDD。我想用关联的键打印 Seq 中存在的每个值

res1: org.apache.spark.rdd.RDD[(java.lang.String, Seq[java.lang.String])] = MapPartitionsRDD[6] at groupByKey at <console>:14

我尝试了以下代码。

val ss=mapfile.map(x=>{  
val key=x._1
val value=x._2.sorted
  var i=0
 while (i < value.length) {
   (key,value(i))
    i += 1
      }
    }     
  )
ss.top(20).foreach(println)
4

2 回答 2

3

我尝试将您的代码转换如下:

val ss = mapfile.flatMap { 
  case (key, value) => value.sorted.map((key, _))
}
ss.top(20).foreach(println)

是你想要的吗?

于 2014-09-03T03:13:13.193 回答
0

我试过这个,它适用于提到的返回类型。

val ss=mapfile.map(x=>{case (key, value) => value.sorted.map((key, _))}.groupByKey().map(x=>(x._1,x._2.toSeq))

    ss.top(20).foreach(println)

注意:ss 的类型是::: org.apache.spark.rdd.RDD[(java.lang.String, Seq[java.lang.String])]

于 2018-12-20T07:26:55.680 回答