11package com .sparkTutorial .pairRdd .groupbykey ;
22
3+ import com .google .common .collect .Iterables ;
34import com .sparkTutorial .rdd .commons .Utils ;
5+ import org .apache .log4j .Level ;
6+ import org .apache .log4j .Logger ;
47import org .apache .spark .SparkConf ;
58import org .apache .spark .api .java .JavaPairRDD ;
69import org .apache .spark .api .java .JavaRDD ;
710import org .apache .spark .api .java .JavaSparkContext ;
811import org .apache .spark .api .java .function .PairFunction ;
912import scala .Tuple2 ;
1013
14+ import java .util .Arrays ;
15+
1116public class AirportsByCountrySolution {
1217
1318public static void main (String []args )throws Exception {
14-
19+ Logger . getLogger ( "org" ). setLevel ( Level . ERROR );
1520SparkConf conf =new SparkConf ().setAppName ("airports" ).setMaster ("local[*]" );
16-
1721JavaSparkContext sc =new JavaSparkContext (conf );
1822
1923JavaRDD <String >lines =sc .textFile ("in/airports.text" );
@@ -26,11 +30,11 @@ public static void main(String[] args) throws Exception {
2630JavaPairRDD <String ,Iterable <String >>AirportsByCountry =CountryAndAirportNameAndPair .groupByKey ();
2731
2832for (Tuple2 <String ,Iterable <String >>airports :AirportsByCountry .collect ()) {
29- System .out .print (airports ._1 () +" : [" );
30- for (String s :airports ._2 ()) {
31- System .out .print (s +", " );
32- }
33- System .out .println ("]" );
33+ System .out .println (airports ._1 () +" : " +iterableToString (airports ._2 ()));
3434 }
3535 }
36+
37+ private static String iterableToString (Iterable <String >iterable ) {
38+ return Arrays .toString (Iterables .toArray (iterable ,String .class ));
39+ }
3640}