我正在尝试将org.apache.spark.rdd.RDD[((String, String), Int)] = MapPartitionsRDD[21]
类型的RDD写入文件:
我通过以下代码创建了我的RDD:
val res = motList2.cartesian(motList2).map { case (x, y) =>
((x._1, y._1), x._2 + y._2)
}
val dir = "H:\\procjet-results"
res.saveAsTextFile(dir)
motList2可以是:
motList2=List( (("Chicken","Pasta"),2), ("Chicken","robot"),3) ... )
但我总是有例外
org.apache.hadoop.mapred.FileAlreadyExistsException
我检查过,文件夹已创建,但所有文件都是空的。
答案 0 :(得分:0)
由于异常显示“org.apache.hadoop.mapred.FileAlreadyExistsException”,因此作业失败的原因是您尝试写入的目录/文件已存在。如果你以前有过hadoop的经验。这是同样的问题。默认情况下,Spark不会覆盖您尝试保存结果的位置,因此如果已经存在,则必须先手动或在代码中删除它。
答案 1 :(得分:0)
你应该使用文件://前缀来确保网址更安全;很多时候hdfs是尝试保存文件的默认值。