띵유로그

[스파크] RDD - Double RDD 전용 함수 본문

DataEngineering/SPARK

[스파크] RDD - Double RDD 전용 함수

띵유 2021. 3. 8. 13:38
반응형

스칼라에서 암시적 변환을 하는 것 처럼 스파크에서도 암시적 변환이 일어난다.
RDD가 Double 객체만 포함한다면 org.apache.spark.rdd.DoubleRDDFunctions 클래스의 객체로 자동변환되어  
double RDD 함수를 추가로 제공한다.

1. 기초 통계량 계산
이전에 만든 Int array로 아래와 같이 계산한다.
scala > intIds.mean
Double = 44.785714285714285

scala > intIds.sum
Double = 627.0
Int 객체가 Double객체로 자동변환되어 double RDD함수가 암시적으로 적용됨.

stats 행동연산자도 있는데 한번의 호출로 전체개수, 합계 평균, 최댓값, 최솟값, 분산, 표준편차를 계산한다.
variance와 stdev 행동 연산자는 내부적으로 stats().variance(), stats().stdev 를 호출 함
scala > intIds.variance
Double = 1114.8826530612246
scala > intIds.stdev
Double = 33.38985853610681

2. 히스토그램으로 데이터 분포 시각화
1) 구간의 경계를 표현하는 double값을 받고 그 구간에 속한 요소의 개수 반환
scala >
 intIds.histogram(Array(1.0,50.0,100.0))
res19: Array[Long] = Array(9, 5)
double 배열은 오름차순이여야함. 중복되면 안됨.

2) 구간의 개수를 받아 전체 범위를 균등하게 나눈다. 그 후 요수 두개로 구성된 튜플 하나를 결과로 반환.
첫 번째 요소 : 구간경계 배열 / 두 번째 요소 : 각 구간에 속한 개수
scala > intIds.histogram(3)
res20: (Array[Double], Array[Long]) = (Array(15.0, 42.66666666666667, 70.33333333333334, 98.0),Array(9, 0, 5))

 

3. 근사 합계 및 평균 계산
sumApprox 
meanApprox
: 밀리초 단위의 제한 시간을 인자로 받아 메서드가 실행될 최대 시간을 결정함. 
: 설정한 시간 까지 못끝내면 그때까지 계산한 중간 결과를 반환.

반응형

'DataEngineering > SPARK' 카테고리의 다른 글

[SPAKR] note  (0) 2021.11.04
[SPARK] SPARK 지연연산의 이점  (0) 2021.08.18
[스파크]RDD연산자2(sample, take, takeSample)  (0) 2021.03.08
[스파크] RDD연산자  (0) 2021.03.08
[스파크] RDD 개요  (0) 2021.03.08
Comments