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: Задача не сериализуется, почему это так?