Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6a7508d

Browse files
author
James Lee
committed
improve AverageHousePriceSolution
1 parent9eaec29 commit6a7508d

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

‎src/main/java/com/sparkTutorial/pairRdd/aggregation/reducebykey/housePrice/AverageHousePriceSolution.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,37 @@
77
importorg.apache.spark.api.java.JavaPairRDD;
88
importorg.apache.spark.api.java.JavaRDD;
99
importorg.apache.spark.api.java.JavaSparkContext;
10-
importorg.apache.spark.api.java.function.Function2;
11-
importorg.apache.spark.api.java.function.PairFunction;
1210
importscala.Tuple2;
1311

1412
importjava.util.Map;
1513

1614
publicclassAverageHousePriceSolution {
1715

1816
publicstaticvoidmain(String[]args)throwsException {
19-
2017
Logger.getLogger("org").setLevel(Level.ERROR);
2118
SparkConfconf =newSparkConf().setAppName("wordCounts").setMaster("local[3]");
2219
JavaSparkContextsc =newJavaSparkContext(conf);
2320

2421
JavaRDD<String>lines =sc.textFile("in/RealEstate.csv");
25-
2622
JavaRDD<String>cleanedLines =lines.filter(line -> !line.contains("Bedrooms"));
2723

2824
JavaPairRDD<String,AvgCount>housePricePairRdd =cleanedLines.mapToPair(
29-
(PairFunction<String,String,AvgCount>)line ->
30-
newTuple2<>(line.split(",")[3],
31-
newAvgCount(1,Double.parseDouble(line.split(",")[2]))));
25+
line ->newTuple2<>(line.split(",")[3],
26+
newAvgCount(1,Double.parseDouble(line.split(",")[2]))));
3227

3328
JavaPairRDD<String,AvgCount>housePriceTotal =housePricePairRdd.reduceByKey(
34-
(Function2<AvgCount,AvgCount,AvgCount>) (x,y) ->
35-
newAvgCount(x.getCount() +y.getCount(),x.getTotal() +y.getTotal()));
29+
(x,y) ->newAvgCount(x.getCount() +y.getCount(),x.getTotal() +y.getTotal()));
3630

3731
System.out.println("housePriceTotal: ");
3832
for (Map.Entry<String,AvgCount>housePriceTotalPair :housePriceTotal.collectAsMap().entrySet()) {
3933
System.out.println(housePriceTotalPair.getKey() +" : " +housePriceTotalPair.getValue());
40-
4134
}
4235

43-
JavaPairRDD<String,Double>housePriceAvg =housePriceTotal.mapToPair(
44-
(PairFunction<Tuple2<String,AvgCount>,String,Double>)total ->
45-
newTuple2<>(total._1(),total._2().getTotal()/total._2().getCount()));
46-
36+
JavaPairRDD<String,Double>housePriceAvg =housePriceTotal.mapValues(avgCount ->avgCount.getTotal()/avgCount.getCount());
4737
System.out.println("housePriceAvg: ");
4838
for (Map.Entry<String,Double>housePriceAvgPair :housePriceAvg.collectAsMap().entrySet()) {
4939
System.out.println(housePriceAvgPair.getKey() +" : " +housePriceAvgPair.getValue());
5040

5141
}
5242
}
53-
5443
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp