【发布时间】:2016-11-04 06:09:29
【问题描述】:
我编写了一个简单的 Apache Spark (1.2.0) Java 程序来导入文本文件,然后使用 saveAsTextFile 将其写入磁盘。但输出文件夹要么没有内容(只有 _SUCCESS 文件),要么有时有不完整的数据(来自 1/2 任务的数据)。
当我对 RDD 执行 rdd.count() 时,它显示正确的数字,所以我知道 RDD 正确构造,只是 saveAsTextFile 方法不起作用。
代码如下:
/* SimpleApp.java */
import java.util.List;
import org.apache.spark.api.java.*;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.function.Function;
public class SimpleApp {
public static void main(String[] args) {
String logFile = "/tmp/READ_ME.txt"; // Should be some file on your system
SparkConf conf = new SparkConf().setAppName("Simple Application");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> logData = sc.textFile(logFile);
logData.saveAsTextFile("/tmp/simple-output");
System.out.println("Lines -> " + logData.count());
}
}
【问题讨论】:
-
这可能是 how to make saveAsTextFile NOT split output into multiple file 的副本。该问题有一些答案描述了输出到一个本地文件的方法。
标签: apache-spark