即使输出目录不存在,也会在 saveAsTextFile 时触发 FileAlreadyExistsException
Spark `FileAlreadyExistsException` when `saveAsTextFile` even though the output directory doesn't exist
我是运行这个命令行:
hadoop fs -rm -r /tmp/output
然后 Java8 spark 作业与此 main()
SparkConf sparkConf = new SparkConf();
JavaSparkContext sc = new JavaSparkContext(sparkConf);
JavaRDD<JSONObject> rdd = sc.textFile("/tmp/input")
.map (s -> new JSONObject(s))
rdd.saveAsTextFile("/tmp/output");
sc.stop();
我收到这个错误:
ERROR ApplicationMaster: User class threw exception: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory /tmp/output already exists
知道如何解决吗?
您删除了 HDFS 目录,但 Spark 尝试保存在本地文件系统中。
要保存在 hdfs 中,试试这个:
rdd.saveAsTextFile("hdfs://<URL-hdfs>:<PORT-hdfs>/tmp/output");
localhost 的默认值是:
rdd.saveAsTextFile("hdfs://localhost:9000/tmp/output");
其他解决方案是从您的本地文件系统中删除 /tmp/output
此致
我是运行这个命令行:
hadoop fs -rm -r /tmp/output
然后 Java8 spark 作业与此 main()
SparkConf sparkConf = new SparkConf();
JavaSparkContext sc = new JavaSparkContext(sparkConf);
JavaRDD<JSONObject> rdd = sc.textFile("/tmp/input")
.map (s -> new JSONObject(s))
rdd.saveAsTextFile("/tmp/output");
sc.stop();
我收到这个错误:
ERROR ApplicationMaster: User class threw exception: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory /tmp/output already exists
知道如何解决吗?
您删除了 HDFS 目录,但 Spark 尝试保存在本地文件系统中。
要保存在 hdfs 中,试试这个:
rdd.saveAsTextFile("hdfs://<URL-hdfs>:<PORT-hdfs>/tmp/output");
localhost 的默认值是:
rdd.saveAsTextFile("hdfs://localhost:9000/tmp/output");
其他解决方案是从您的本地文件系统中删除 /tmp/output
此致