我不知道它是否可能,但我想在我的mapPartitions中将变量“a”分成两个列表。像这里有一个列表l存储所有数字和另一个列表让我们说b存储所有单词。用类似a.mapPartitions((p,v) =>{ val l = p.toList; val b = v.toList; ....}
在地图中分割键值scala
随着例如在我的for循环升(I)= 1,B(1)= “分数”
import scala.io.Source
import org.apache.spark.rdd.RDD
import scala.collection.mutable.ListBuffer
val a = sc.parallelize(List(("score",1),("chicken",2),("magnacarta",2)))
a.mapPartitions(p =>{val l = p.toList;
val ret = new ListBuffer[Int]
val words = new ListBuffer[String]
for(i<-0 to l.length-1){
words+= b(i)
ret += l(i)
}
ret.toList.iterator
}
)
'a.map(_._ 1); a.map(_._ 2)'? – zero323