hadoop - Spark saveAsTextFile 创建目录

标签 hadoop apache-spark amazon-emr

我使用 Apache Spark 在 java 中实现了以下代码。 我正在 AWS EMR 上运行该程序。 我刚刚从文件中的字数统计示例中实现了简单的程序。 我正在从 HDFS 读取文件。

public class FileOperations {

    public static void main(String[] args) {

        SparkConf conf = new SparkConf().setAppName("HDFS");
        JavaSparkContext sparkContext = new JavaSparkContext(conf);
        JavaRDD<String> textFile = sparkContext.textFile("hdfs:/user/hadoop/test.txt");
        System.out.println("Program is stared");
        JavaPairRDD<String, Integer> counts = textFile
                .flatMap(s -> Arrays.asList(s.split(" ")).iterator())
                .mapToPair(word -> new Tuple2<>(word, 1))
                .reduceByKey((a, b) -> a + b);



        counts.foreach(f -> System.out.println(f.toString()));

        counts.saveAsTextFile("hdfs:/user/hadoop/output.txt");
        System.out.println("Program finished");
    }

}

上述程序中的问题是 counts.saveAsTextFile("hdfs:/user/hadoop/output.txt"); 不是创建文本文件,而是创建目录输出。 txt 已创建。

上面的代码有什么问题。 这是我第一次使用 Spark 和 EMR。

enter image description here

最佳答案

它应该是这样工作的。您不指定文件名,只指定路径。 Spark 将在该目录中创建文件。如果您查看 saveAsTextFile 的方法定义你可以看到它需要一条路径:

public void saveAsTextFile(字符串路径)

在您指定的路径内,它将为数据中的每个分区创建一个 part 文件。

关于hadoop - Spark saveAsTextFile 创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43738430/

相关文章:

hadoop - 如何安装Kudu?

hadoop - 取出 pig 中的空袋

hadoop - 在 Hive 中描述扩展表

hadoop - 解析异常EOF配置单元

amazon-ec2 - 尝试在具有公共(public) IP 的 EC2 节点上启动 Spark master 时获取 java.net.BindException

apache-spark - Spark : how to get all configuration parameters

hadoop - Hadoop集群上的Namenode和Jobtracker信息

apache-spark - 在 Pyspark 中将月份名称转换为数字

amazon-web-services - 在 yarn 上运行多个类似的 Spark 提交作业

python - 使用 Pyspark 读取 S3 上的随机文件样本