1.5G 데이터를 읽고 변환하는 애플리케이션을 구축 중입니다. 내 코드 스켈레톤은 다음과 같습니다.apache spark : 코드 최적화를위한 입력이 필요합니다.
는 // 여기에 내가 // 4000 개 파일을 읽고 노동 조합을 형성 RDD를 모든 레코드와 unionbioSetId로
실행() {
JavaRDD<String> unionbioSetId = readDirectory(ctx, groupAID, groupBID);
JavaRDD<String> temp= unionbioSetId.coalesce(6, false);
JavaPairRDD<String, Tuple3<Double, Double, Double>> flatRDD = temp.flatMapToPair(
new PairFlatMapFunction<String, String, String>() {
return Arrays.asList(new Tuple2<String, String>(key,value));
}}).groupByKey().mapToPair(new PairFunction<Tuple2<String, Iterable<String>>, // input
String, // K
Tuple3<Double, Double, Double> // V
>() {
public Tuple2<String, Tuple3<Double, Double, Double>> call(
Tuple2<String, Iterable<String>> value) {
}).filter(new Function<Tuple2<String, Tuple3<Double, Double, Double>>, Boolean>() {
}});// group by key and map to pair,sort by key
}
String hadoopOutputPathAsString = directory;
flatRDD.saveAsTextFile(hadoopOutputPathAsString);
}
} 을 반환하는 아이디의 목록을 통과 실행기의 /////////////
NUM 9 드라이버 메모리 : 실행 프로그램 메모리의 2g : 6g에게 execuotr 코어 12
내 프로그램이 map/reduce (동일한 코드 스켈레톤)보다 느리게 실행됩니다. 위의 코드 스켈레톤을 최적화하는 데 도움이 될 수 있습니다.
제공하신 코드는 완전히 읽을 수 없습니다. 심하게 들여 쓰기가 쉬우 며 부품이 분명히 빠져 있습니다. 중괄호가 일치하지 않습니다. 그걸 정리 해주시겠습니까? –