2013-03-26 2 views
1

Scalding을 사용한 일부 계산의 마지막 단계로서 파이프의 여러 열의 평균을 계산하려고합니다. 그러나 다음 코드는 여러 개의 패스를하지 않고 같은 기능 sum, max, average을 계산하기 위해 어떤 방법이 있나요Scalding에서 여러 컬럼을 동시에 평균화하는 방법은 무엇입니까?

myPipe.groupAll { _average('col1,'col2, 'col3) } 

작동하지 않는 이유는 무엇입니까? 성능에 관심이 있지만 어쩌면 Scalding이 프로그래밍 방식으로이를 감지 할만큼 똑똑 할 것입니다.

답변

3

이 질문에 대한 답변이 cascading-user 포럼에서 열렸습니다. 아래의 기능을 사용하여 한 번에 참조

myPipe.groupAll { _.average('col1).average('col2).average('col3) } 
+0

한 줄에 원하면 중괄호를 사용하십시오. myPipe.groupAll (_. 평균 ('col1). 평균 ('col2). 평균 ('col3))'. 중괄호는 3 줄로 확장되어야합니다. – samthebest

+0

@ancehu 어떻게 계단식으로 구현할 수 있습니까? –

1

당신이 (일명 계산), 평균 크기를 할 수 여기에 대답을 떠나, 그리고 standardDev.

// Find the count of boys vs. girls, their mean age and standard deviation. 
// The new pipe contains "sex", "count", "meanAge" and "stdevAge" fields. 
val demographics = people.groupBy('sex) { _.sizeAveStdev('age -> ('count, 'meanAge, 'stdevAge)) } 

최대 값을 찾는 데는 다른 통과가 필요합니다.

관련 문제