Apache Spark를 사용하여 java에서 다음 코드를 구현했습니다. AWS EMR에서이 프로그램을 실행하고 있습니다. 방금 파일의 단어 수에 대한 예제에서 간단한 프로그램을 구현했습니다. HDFS에서 파일을 읽는 중입니다.스파크 saveAsTextFile 디렉토리 만들기
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은 각 파티션마다 하나씩 디렉토리에 파일을 생성합니다. –
감사. 완료. 내 파일을 찾았습니다.이 질문을 해결 된 것으로 표시 할 수 있도록 답변 섹션에 답변을 게시하십시오. –