Apache Spark - redubyKey - Java -

Я пытаюсь понять работуreduceByKey в Spark, используя Java в качестве языка программирования.

Скажем, у меня есть предложение «Я тот, кто я есть». Я разбиваю предложение на слова и сохраняю его как список[I, am, who, I, am].

Теперь эта функция назначает1 к каждому слову:

JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() {
    @Override
    public Tuple2<String, Integer> call(String s) {
        return new Tuple2<String, Integer>(s, 1);
    }
});

Таким образом, результат выглядит примерно так:

(I,1) 
(am,1)
(who,1)
(I,1)
(am,1)

Теперь, если у меня работает 3 редуктора, каждый редуктор получит ключ и значения, связанные с этим ключом:

reducer 1:
    (I,1)
    (I,1)

reducer 2:
    (am,1)
    (am,1)

reducer 3:
    (who,1)

Я хотел знать

а. Что именно происходит здесь в функции ниже.
б. Какие параметрыnew Function2<Integer, Integer, Integer>
с. В основном, как формируется JavaPairRDD.

JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() {
    @Override
    public Integer call(Integer i1, Integer i2) {
        return i1 + i2;
    }
});

Ответы на вопрос(3)

Ваш ответ на вопрос