Я новичок в Скале и Спарк. Я не мог понять агрегатную функцию. Мне дан следующий код, но я не понимаю выходное значение.
val z = sc.parallelize(List("12","23","345","4567"),2)
z.aggregate("")((x,y) => math.min(x.length, y.length).toString, (x,y) => x + y)
res5: String = 11
Есть 2 раздела. Начальное значение "". Как применяется значение (x, y), я не слишком уверен. Но я понимаю, что для первого раздела он будет итеративно принимать их за ("", "12") ("12", "23"), а минимальное значение, возвращаемое для первого раздела, равно 0. Аналогично для 2-гоpartition (x, y) итеративно оценивает функцию min из ("", "345") ("345", "4567"), а значение min, возвращаемое для второго раздела, равно 0.
Функция редуктораоттуда берет на себя агрегацию результатов "" + "0" + "0" - конечный результат должен быть "00", но фактический результат - "11"
что мне не хватает, может кто-нибудь объяснить, какАгрегатная функция работает для приведенного выше кода. Особенно я не понимаю концепцию (x, y).