将双RDD保存到文件中 - Scala

时间:2016-03-18 16:36:23

标签: scala apache-spark

我试图在文件中保存一个双RDD,我的意思是双RDD是我有这个变量:

res: org.apache.spark.rdd.RDD[org.apache.spark.rdd.RDD[((String,String), Int)]] = MapPartitionsRDD[19] 

我试着用

存储它
res.saveAsTextFile(path)

但它不起作用,因为Spark不支持嵌套RDD,所以启动了一个例外代码示例:

val res = Listword.map { x =>
Listword.map { y =>
  ((x._1, y._1), x._2 + y._2)
}
}
res.saveAsTextFile("C:/Users/Administrator/Documents/spark/spark-1.6.0-bin-hadoop2.6")

1 个答案:

答案 0 :(得分:3)

Spark不允许嵌套的RDD。在您的具体情况下,您可以使用cartesian

ListWord.cartesian(ListWord).map { case (x, y) =>
  ((x._1, y._1), x._2 + y._2)
}