2016-03-18 69 views
-1

我想在一個文件中的雙RDD拯救,我的意思是由一個雙RDD是,我有這個變量:保存雙RDD到文件 - 斯卡拉

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

我試圖存儲它與

res.saveAsTextFile(path) 

但它不工作,異常啓動,因爲星火不支持嵌套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") 
+3

你是什麼意思的「它不工作」?如果可能,請添加一小段代碼來重現問題。 – ale64bit

+1

你不能嵌套RDD,你可以以某種方式解決它們。 –

+0

看起來像笛卡兒的工作? –

回答

3

Spark不允許嵌套的RDD。在你的具體情況下,你可以使用cartesian

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