цикл по значениям в richPipe: ошпаривание

Я пытаюсь решить проблему, когда мне приходится перебирать все значения в канале. Чтобы смоделировать мою проблему, я объясню пример проблемы.

    Input file :
    number
    1
    2
    3
    4


    Output should be
    number sumOfSmaller 
    1        0            
    2        1             
    3        3
    4        6

Поэтому для каждого значения я должен прочитать все записи в канале и применить функцию sumOfSmaller. Я понятия не имею, как перебирать значения в scalding pipe. Используя карту, я могу применить функцию каждого элемента списка, но я хочу избежать этого подхода.


person Ankita    schedule 22.01.2016    source источник


Ответы (1)


Вы можете получить содержимое всего канала с помощью val wholePipe = pipe.groupAll.toList, а затем соединить его с самим собой и применить свою функцию: pipe.groupAll.join(wholePipe).values.map { case (x, list) => sumOfSmaller(x, list) }

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

person Dima    schedule 23.01.2016