Перебрать значения в 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) }

Это не очень хорошая идея, особенно, если ваша труба имеет приличный размер. Знание более подробной информации о том, что вы на самом деле пытаетесь сделать, почти наверняка даст вам лучший подход.

Другие вопросы по тегам