我正在运行此命令行:
hadoop fs -rm -r /tmp/output
然后使用此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
知道怎么解决吗?
答案 0 :(得分:0)
您删除HDFS目录但Spark尝试保存在本地文件系统中。
要保存在hdfs中,请尝试:
rdd.saveAsTextFile("hdfs://<URL-hdfs>:<PORT-hdfs>/tmp/output");
localhost的默认值为:
rdd.saveAsTextFile("hdfs://localhost:9000/tmp/output");
其他解决方案是从本地文件系统中删除/tmp/output
祝你好运