Исключение Serializable Spark Task - PullRequest
1 голос
/ 22 февраля 2020
public static void main(String[] args) {
        List<String> inputData = new ArrayList<>();
        inputData.add("WARN: Tuesday 4 September 0405");
        inputData.add("ERROR: Tuesday 4 September 0408");
        inputData.add("FATAL: Wednesday 5 September 1632");
        inputData.add("ERROR: Friday 7 September 1854");
        inputData.add("WARN: Saturday 8 September 1942");

        Logger.getLogger("org.apache").setLevel(Level.WARN);

        SparkConf conf = new SparkConf().setAppName("startingSpark").setMaster("local[*]");
        JavaSparkContext sc = new JavaSparkContext(conf);

        sc.parallelize(inputData)
        .flatMap(value -> Arrays.asList(value.split(" ")).iterator())
        .filter(word -> word.length() > 1)
        // Here comes the exception
        .foreach(System.out::println);
        sc.close();
    }  

foreach (s -> System.out.println (s)); -> Отлично работает

foreach (System.out :: println); -> Исключение в потоке "главная" организация. apache .spark.SparkException: задача не сериализуема

оба одинаковы, последний использует функцию ссылки на метод начиная с java 8 и далее, но создает исключение в thread "main" org. apache .spark.SparkException: Задача не сериализуется, почему это так?

...