Перебрать значения в richPipe: ошпаривание
Я пытаюсь решить проблему, в которой я должен пройтись по всем значениям в pipe. Чтобы смоделировать мою проблему, я объясню через примерную проблему
Input file :
number
1
2
3
4
Output should be
number sumOfSmaller
1 0
2 1
3 3
4 6
Поэтому для каждого значения я должен прочитать все записи в конвейере и применить функцию sumOfSmaller. Я понятия не имею, как перебрать значения в трубе ошпаривания. Используя карту, я могу применить функцию каждого элемента списка, но я хочу избежать этого подхода
1 ответ
Вы можете получить содержимое всей трубы с val wholePipe = pipe.groupAll.toList
, а затем присоедините его к себе и примените свою функцию: pipe.groupAll.join(wholePipe).values.map { case (x, list) => sumOfSmaller(x, list) }
Это не очень хорошая идея, особенно, если ваша труба имеет приличный размер. Знание более подробной информации о том, что вы на самом деле пытаетесь сделать, почти наверняка даст вам лучший подход.