2017-11-21 1 views
0

내가해야 할 문서에 다음을 찾았습니다. mean(df$c) 평균을 계산할 때 작동하지 않으며 결과는 Column avg(age)

meanAge=head(select(df, mean(df$age)) 

을 그리고 그것은 작동!하지만 어떻게

특히, 헤드 명령어가를 반환하려는 이유/모르겠어요 값) 내가 databricks에서 발견

, 어떻게해야합니까 단일 값이 아닌 데이터 프레임의 첫 번째 값 아니요.

평균을 계산하는 가장 좋은 방법입니까?

PS : typeof(df) 반환 'S4'

답변

1

SparkR는 스파크 객체를 조작하기위한 DSL (도메인 특정 언어)입니다. SparkDataFramedata.frame과 호환되지 않으며 열에 대한 작업에는 다른 의미가 있습니다.

mean(df$c)은 설명 일 뿐이며 데이터에 바인딩되지 않습니다. 문맥에 배치해야합니다 (여기서는 select(df, ...)). 조치로 평가하면 여기 head입니다.

당신에게 collect 혼란 head를 발견하면

:

df <- createDataFrame(iris) 

> df %>% select(mean(df$Petal_Length)) %>% collect() 
    avg(Petal_Length) 
1    3.758 

또는 당신이 실행을 시행하고 data.frame 같은 결과를 가져 오는 모든 경우에 as.data.frame

> df %>% select(mean(df$Petal_Length)) %>% as.data.frame() 
    avg(Petal_Length) 
1    3.758 

를 사용합니다. 차이점은 머리 수에 비해 행 수를 제한하지 않는다는 것입니다 (큰 데이터 세트에는 적용 할 수 없음).