Apache Sparkを使用してJavaで次のコードを実装しました。 AWS EMRでこのプログラムを実行しています。 ファイル内の単語数の例から単純なプログラムを実装しました。 私はHDFSからファイルを読んでいます。スパークsaveAsTextファイル作成ディレクトリ
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");
あるディレクトリoutput.txt
が作成される代わりに、テキストファイルを作成していません。
上記のコードで何が間違っていますか。 私はSparkとEMRで作業しているのは初めてです。
これはどのように動作するかです。ファイル名を指定するのではなく、パスだけを指定します。 Sparkはそのディレクトリ内にパーティションごとに1つのファイルを作成します。 –
ありがとうございます。完了しました。私はファイルを見つけました。答えのセクションにあなたの答えを投稿してください。私はこの問題を解決済みとしてマークすることができます。 –