일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 문맥교환
- 프로그래머스힙
- freenom
- 프로그래머스 큰 수 만들기
- AWS Crawler
- 빌드도구
- 하둡
- 프로그래머스
- Databricks
- 데이터파이프라인
- Spark 최적화
- kafka 설치
- 하둡2.0
- Spark
- Catalyst Optimizer
- EMR 구조
- ORACLE MSSQL차이
- 스파크
- 하둡에코시스템
- 서버간 복사
- 지연연산
- 카프카
- 데이터엔지니어링
- 데이터베이스복사
- 하둡1.0
- 실행엔진
- 런타임데이터영역
- lazy evaluation
- 데이터 수집
- ORACLE문법
- Today
- Total
띵유로그
[스파크] RDD - Double RDD 전용 함수 본문
스칼라에서 암시적 변환을 하는 것 처럼 스파크에서도 암시적 변환이 일어난다.
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 |