1 life 2 live

스파크(스칼라)를 이용한 빅데이터 (5) - 스칼라 클래스 [20.8.16] 본문

빅데이터

스파크(스칼라)를 이용한 빅데이터 (5) - 스칼라 클래스 [20.8.16]

대희투 2020. 8. 16. 19:13

○ 케이스 클래스 : case로 선언, 일반 클래스와 달리 new를 사용하지 않음

 

○ 특징

불변 데이터 : 기본적으로 불변 변수로 선언

패턴 매칭 : 자바의 case보다 강력한 기능 제공, 값을 비교하여 일치하는 값 변환, [_]는 아무 값도 일치하지 않을 때 결과 출력

데이터 비교 : 참조값을 이용하지 않고, 클래스의 멤버변수의 데이터를 이용하여 처리

초기화 간단 : new를 이용하지 않고 초기화 가능

자동 코드 생성 : toString, hashCode, equals 자동 생성, 컴파일러가 불변 객체를 지원하기 위해 새로운 복제 객체를 리턴하는 copy() 메서드를 자동으로 생성

 

○ 기본 자료형 매칭

 

○ 믹스인 컴포지션 : 클래스와 트레잇을 상속할 때 서로 다은 부모의 변수, 메소드를 섞어서 새로운 정의를 하는 것

 

○ 트레잇 : 자바의 인터페이스와 유사, 메소드 정의, 기본 구현 가능, 추상 클라스와 달리 생성자 파라미터x

가변 변수, 불변 변수 선언 가능

가변 변수 수정 가능, 불변 변수 수정 불가능

기본 메소드는 extend로 상속, 여러개의 트레잇을 with 키워드로 구현가능, override를 통해 메소드 재정의 가능

멤버변수x, 여러개 상속 가능

 

○ 싱글톤 객체 : object 선언자로 생성, 전역적으로 접근하고 참조 가능, 직접 접근 가능, import를 선언 후도 가능

 

○ 컴패니언 : 싱글톤 객체와 클래스가 같은 이름일때, 정적 메소드의 보관 장소 제공

 

○ 자료구조

배열 : 길이가 고정된 자료구조

리스트 : 가변적인 길이의 데이터를 저장하기 위한 자료구조

셋 : 중복을 허용하지 않는 자료구조, 전달된 값이 존재하는 여부 반환

튜플 : 불변의 데이터를 저장하는 자료구조, 여러가지 값 저장 가능, 값 접근할 때는 _1, _2와 같은 형태로 접근, 패턴매칭 이용가능

맵 : 사전 형식으로 데이터 저장, 맴의 데이터를 반환하면 option 타입을 반환, getOrElse를 이용하는 것이 좋음

 

○ 반복분 : for, do while, while

for : to는 이하의 리스트 생성, until은 미만의 시퀀스 생성

 

○ 배열의 인덱스와 함꼐 for문 처리 : zipWithIndex 함수 사용

 

○ 맵의 키, 밸류를 for문  처리 : 맵의 키, 밸류는 튜플로 전달, for문 처리시 사용

 

○ 중첩 for문 : [;]를 이용하여 생성

 

 

○ 조건식 추가 : [;]로 if문을 분할하여 여러개의 조건 추가 가능

 

○ yeild를 이용한 시퀀스 컴프리헨션 : for문의 끝에 yield를 이용해서 for문에서 생성한 값들의 시퀀스를 반환

 

○ do while문 : 조건이 참일때만 반복

 

○ while 문 : 조건임 참일때만 반복

 

○ map : 콜렉션의 각 아이템에 대하여 동일한 작업을 해야할 때 사용

 

○ reduce, fold : 콜렉션의 데이터를 집계할 때 사용

 

○ groupBy : 데이터를 키 기준으로 병합할 때 사용, 결과를 Map방식으로 반환, 전달된 키를 리스트 형태의 데이터로 반환

 

○ filter : 콜렉션의 데이터를 필터링하여 없애거나 분류할 때 사용, partition은 콜렉션을 분류, find는 데이터 검색

takeWhile과 dropWhile을 이용하여 원하는 부분까지 데이터 선택

 

○ zip : 두 개의 콜렉션을 같은 인덱스의 데이터로 묶음, 길이가 일치하지 않으면 작은 갯수 만큼 반환

 

○ mapValues : Map타입의 데이터에서 밸류만 map 함수 처리를 하고싶을 때 사용하는 함수

 

○ 정렬 : sorted, sortWith, sortBy 

 

 

모든 글의 출처는 https://wikidocs.net/ 입니다.

728x90
반응형
Comments