Я изучаю Spark с базовыми знаниями Java.
В моей первой программе Spark я увидел код, который выглядит следующим образом:
JavaRDD<String> tweetsRDD = spContext.textFile("/home/andrea/Documents/SparkTest");
for (String s : tweetsRDD.take(5)) {
System.out.println(s);
}
System.out.println("Total tweets in file : " + tweetsRDD.count());
JavaRDD<String> ucRDD = tweetsRDD.map(str -> str.toUpperCase());
// Print upper case lines
for (String s : ucRDD.take(5)) {
System.out.println(s);
}
Я не понимаю, что означает str -> str.toUpperCase()
в функции карты.
После поиска в Google я обнаружил, что map - это функция, объявленная в интерфейсе JavaRDDLike<T, This extends JavaRDDLike<T, This>>
.
Сигнатура функции: map(Function<T, R> f)
Могу ли я узнать, пожалуйста, как Function<T, R>
и str -> str.toUpperCase()
связаны друг с другом как параметр в функции карты?
Я не могу понять эту функцию str -> str.toUpperCase()
! Как это выглядит Function<T, R>
?
Мой второй вопрос касается интерфейса JavaRDDLike. Я видел, как один из типов аргументов сказал This extends JavaRDDLike<T,This>
? Что это значит? Это указывает на класс, реализующий этот интерфейс?