1
1
package com .sparkTutorial .pairRdd .groupbykey ;
2
2
3
- import com .google .common .collect .Iterables ;
4
3
import com .sparkTutorial .rdd .commons .Utils ;
5
4
import org .apache .log4j .Level ;
6
5
import org .apache .log4j .Logger ;
7
6
import org .apache .spark .SparkConf ;
8
7
import org .apache .spark .api .java .JavaPairRDD ;
9
8
import org .apache .spark .api .java .JavaRDD ;
10
9
import org .apache .spark .api .java .JavaSparkContext ;
11
- import org .apache .spark .api .java .function .PairFunction ;
12
10
import scala .Tuple2 ;
13
11
14
- import java .util .Arrays ;
12
+ import java .util .Map ;
15
13
16
14
public class AirportsByCountrySolution {
17
15
@@ -23,18 +21,13 @@ public static void main(String[] args) throws Exception {
23
21
JavaRDD <String > lines = sc .textFile ("in/airports.text" );
24
22
25
23
JavaPairRDD <String , String > CountryAndAirportNameAndPair =
26
- lines .mapToPair ((PairFunction <String , String , String >) airport ->
27
- new Tuple2 <>(airport .split (Utils .COMMA_DELIMITER )[3 ],
28
- airport .split (Utils .COMMA_DELIMITER )[1 ]));
24
+ lines .mapToPair ( airport -> new Tuple2 <>(airport .split (Utils .COMMA_DELIMITER )[3 ],
25
+ airport .split (Utils .COMMA_DELIMITER )[1 ]));
29
26
30
27
JavaPairRDD <String , Iterable <String >> AirportsByCountry = CountryAndAirportNameAndPair .groupByKey ();
31
28
32
- for (Tuple2 <String , Iterable <String >> airports : AirportsByCountry .collect ()) {
33
- System .out .println (airports ._1 () + " : " + iterableToString ( airports ._2 () ));
29
+ for (Map . Entry <String , Iterable <String >> airports : AirportsByCountry .collectAsMap (). entrySet ()) {
30
+ System .out .println (airports .getKey () + " : " + airports .getValue ( ));
34
31
}
35
32
}
36
-
37
- private static String iterableToString (Iterable <String > iterable ) {
38
- return Arrays .toString (Iterables .toArray (iterable , String .class ));
39
- }
40
33
}
0 commit comments