我一直在尝试运行Pi Estimation和中的https://spark.apache.org/examples.html上的 wordCount 示例,Java EMR

Pi估计工作正常,所以我认为一切都已正确设置。
但是我收到wordCount这个错误:
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://XXX/user/hadoop/input.txt
在运行以下命令之前,我已经从s3下载了input.txt和jar:
spark-submit --class "wordCount" --master local[4] Spark05-1.1.jar input.txt
这是我的wordCount代码:

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;

import java.util.Arrays;

public final class wordCount {

    public static void main(String[] args) {

        SparkConf sparkConf = new SparkConf().setMaster("local").setAppName("JD Word Counter");

        JavaSparkContext sparkContext = new JavaSparkContext(sparkConf);



        JavaRDD<String> textFile = sparkContext.textFile(args[0]);
        JavaPairRDD<String, Integer> counts = textFile
                .flatMap(s -> Arrays.asList(s.split(" ")).iterator())
                .mapToPair(word -> new Tuple2<>(word, 1))
                .reduceByKey((a, b) -> a + b);
        counts.saveAsTextFile("result.txt");


    }
}

我做错什么了吗?

最佳答案

如果您没有在hdfs上加载input.txt,请尝试将其放入hdfs中。

或者,尝试使用带有前缀"file"的完整路径,例如file:// {YOUR_FILE_PATH}。
我相信是因为spark配置中的'fs.defaultFS'是'hdfs'。

关于java - 带有EMR的Java + Spark wordCount,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61101610/

10-11 04:29
查看更多