Scala中的for循环遍历和yield详解

K-V对的RDD遍历

val hashpartitionCounts: RDD[(String, Int)] = kvpartitionRDD.reduceByKey((x, y) => x + y)

hashpartitionCounts.foreach{ line=>
  println("word="+line._1+" ,num="+line._2)
}
//下面的for和上面的一样结果
for (i <- hashpartitionCounts)
  print("word="+i._1+" ,num="+i._2)

对数组RDD的遍历

  //测试flatMap
    val wordPairRDD:RDD[String] = lineRDD.flatMap(line => {
      //将行转化为单词数组
      val words: Array[String] = line.split(" ")
      //单个单词数组 转化为相邻单词数组
      for (i <- 0 until words.length - 1) yield words(i) + "-" + words(i + 1)
    }
    )
    println("=

你可能感兴趣的:(Scala,hadoop,scala)