fork download
  1.  
  2. import org.apache.spark.SparkConf;
  3. import org.apache.spark.api.java.JavaPairRDD;
  4. import org.apache.spark.api.java.JavaRDD;
  5. import org.apache.spark.api.java.JavaSparkContext;
  6. import org.apache.spark.broadcast.Broadcast;
  7. import scala.Tuple2;
  8.  
  9. import java.io.BufferedReader;
  10. import java.io.FileReader;
  11. import java.io.IOException;
  12. import java.util.*;
  13.  
  14. /**
  15.  * Created by 11130 on 14/02/16.
  16.  */
  17. public class MostPopularSuperHero {
  18.  
  19. public static void main(String args[]) {
  20. SparkConf conf = new SparkConf().setAppName("MostPopularSuperHero").setMaster("local[*]");
  21. JavaSparkContext sc = new JavaSparkContext(conf);
  22.  
  23. class HrDict {
  24. Map<Integer, String> getHeroDict() {
  25. Map<Integer, String> heroDict = new HashMap<>();
  26. BufferedReader br = null;
  27.  
  28. try {
  29.  
  30. String sCurrentLine;
  31.  
  32. br = new BufferedReader(new FileReader("/Users/11130/udemy/SparkCourse/Marvel-Names.txt"));
  33.  
  34. while ((sCurrentLine = br.readLine()) != null) {
  35. String str = sCurrentLine;
  36. String[] fields = str.split(" ", 2);
  37. heroDict.put(Integer.parseInt(fields[0]), fields[1]);
  38. }
  39.  
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43.  
  44. return heroDict;
  45. }
  46. }
  47.  
  48. class DummyComparator implements Comparator<Tuple2<Integer, String> > {
  49. @Override
  50. public int compare(Tuple2<Integer, String> o1, Tuple2<Integer, String> o2) {
  51. return Integer.compare(o1._1(), o2._1());
  52. }
  53. }
  54.  
  55. Broadcast<Map<Integer, String> > heroDict = sc.broadcast(new HrDict().getHeroDict());
  56. JavaRDD<String> lines = sc.textFile("/Users/11130/udemy/SparkCourse/Marvel-Graph.txt");
  57.  
  58. JavaPairRDD<Integer, Integer> countOfOccurences = lines.mapToPair(
  59. s -> {
  60. String[] heroes = s.split(" ");
  61. return new Tuple2<>(Integer.parseInt(heroes[0]), heroes.length - 1);
  62. }
  63. ).reduceByKey(
  64. (x, y) -> x + y
  65. );
  66.  
  67. JavaPairRDD<Integer, String> flippedCountOfOccurences = countOfOccurences.mapToPair(
  68. s -> new Tuple2<>(s._2(), heroDict.getValue().get(s._1()))
  69. );
  70.  
  71.  
  72.  
  73. Tuple2<Integer, String> result = flippedCountOfOccurences.max(new DummyComparator());
  74.  
  75. System.out.println("The most populat superhero is " + result._2() + " with " + result._1() + " number of occurences");
  76.  
  77. }
  78. }
  79.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:17: error: class MostPopularSuperHero is public, should be declared in a file named MostPopularSuperHero.java
public class MostPopularSuperHero {
       ^
Main.java:2: error: package org.apache.spark does not exist
import org.apache.spark.SparkConf;
                       ^
Main.java:3: error: package org.apache.spark.api.java does not exist
import org.apache.spark.api.java.JavaPairRDD;
                                ^
Main.java:4: error: package org.apache.spark.api.java does not exist
import org.apache.spark.api.java.JavaRDD;
                                ^
Main.java:5: error: package org.apache.spark.api.java does not exist
import org.apache.spark.api.java.JavaSparkContext;
                                ^
Main.java:6: error: package org.apache.spark.broadcast does not exist
import org.apache.spark.broadcast.Broadcast;
                                 ^
Main.java:7: error: package scala does not exist
import scala.Tuple2;
            ^
Main.java:19: error: cannot find symbol
    static class DummyComparator implements Comparator<Tuple2<Integer, String>> {
                                                       ^
  symbol:   class Tuple2
  location: class MostPopularSuperHero
Main.java:20: error: cannot find symbol
        public int compare(Tuple2<Integer, String> x, Tuple2<Integer, String> y) {
                           ^
  symbol:   class Tuple2
  location: class DummyComparator
Main.java:20: error: cannot find symbol
        public int compare(Tuple2<Integer, String> x, Tuple2<Integer, String> y) {
                                                      ^
  symbol:   class Tuple2
  location: class DummyComparator
Main.java:49: error: cannot find symbol
        SparkConf conf = new SparkConf().setAppName("MostPopularSuperHero").setMaster("local[*]");
        ^
  symbol:   class SparkConf
  location: class MostPopularSuperHero
Main.java:49: error: cannot find symbol
        SparkConf conf = new SparkConf().setAppName("MostPopularSuperHero").setMaster("local[*]");
                             ^
  symbol:   class SparkConf
  location: class MostPopularSuperHero
Main.java:50: error: cannot find symbol
        JavaSparkContext sc = new JavaSparkContext(conf);
        ^
  symbol:   class JavaSparkContext
  location: class MostPopularSuperHero
Main.java:50: error: cannot find symbol
        JavaSparkContext sc = new JavaSparkContext(conf);
                                  ^
  symbol:   class JavaSparkContext
  location: class MostPopularSuperHero
Main.java:51: error: cannot find symbol
        Broadcast<Map<Integer, String> > heroDict = sc.broadcast(getHeroDict());
        ^
  symbol:   class Broadcast
  location: class MostPopularSuperHero
Main.java:52: error: cannot find symbol
        JavaRDD<String> lines = sc.textFile("/Users/11130/udemy/SparkCourse/Marvel-Graph.txt");
        ^
  symbol:   class JavaRDD
  location: class MostPopularSuperHero
Main.java:54: error: cannot find symbol
        JavaPairRDD<Integer, Integer> countOfOccurences = lines.mapToPair(
        ^
  symbol:   class JavaPairRDD
  location: class MostPopularSuperHero
Main.java:57: error: cannot find symbol
                    return new Tuple2<>(Integer.parseInt(heroes[0]), heroes.length - 1);
                               ^
  symbol:   class Tuple2
  location: class MostPopularSuperHero
Main.java:63: error: cannot find symbol
        JavaPairRDD<Integer, String> flippedCountOfOccurences = countOfOccurences.mapToPair(
        ^
  symbol:   class JavaPairRDD
  location: class MostPopularSuperHero
Main.java:64: error: cannot find symbol
                s -> new Tuple2<>(s._2(), heroDict.getValue().get(s._1()))
                         ^
  symbol:   class Tuple2
  location: class MostPopularSuperHero
Main.java:67: error: cannot find symbol
        Tuple2<Integer, String> result = flippedCountOfOccurences.max(new DummyComparator());
        ^
  symbol:   class Tuple2
  location: class MostPopularSuperHero
21 errors
stdout
Standard output is empty