[스터디] 스파크 완벽 가이드 16일차

Kristopher·2022년 2월 7일
0

Spark 스터디

목록 보기
16/16

Chapter 16 스파크 애플리케이션 개발하기

스파크 애플리케이션은 스파크 클러스터와 사용자 코드 두가지 조합으로 구성된다. 애플리케이션 개발시 템플릿을 이용하여 기본적인 틀을 잡을 수 있다. 스파크에서 지원하는 언어에 따라 해당 절에서는 스칼라, 파이썬, 자바로 어플리케이션을 작성하는 방법을 소개하고 있다.

스파크 애플리케이션 테스트

애플리케이션을 테스트를 작성할 때는 몇가지 원칙을 고려해야 한다.

전략적 원칙

  • 입력 데이터에 대한 유연성 : 데이터 파이프라인은 다양한 유형의 입력 데이터에 유연하게 대처할 수 있어야 한다. 혹은 오류 상황을 적절하고 유연하게 제어할 수 있어야 한다.
  • 비지니스 로직 변경에 대한 유연성 : 내부 비지니스 로직의 변경이 발생할 수 있는데, 비지니스 로직을 꼼꼼히 점건해 의도한 대로 동작하는지 확인해야 한다. 이때 스파크 단위 테스트를 작성하지 않도록 주의해야 한다.
  • 결과의 유연성 원자성 : 테스트를 거친 결과가 의도대로 나오는지, 스키마에 적절한 형태로 반환될 수 있도록 제어해야 한다.

테스트 코드 작성시 고려사항

  • SparkSession 관리하기 : 스파크 코드에서 의존성 주입 방식으로 SparkSession을 관리하도록 해야한다. SparkSession을 한 번만 초기화하고 런타임 환경에서 함수와 클래스에 전달하는 방식을 사용하면 테스트 중에 SparkSession을 쉽게 교체할 수 있다.
  • 테스트 코드용 스파크 API 선정하기 : 애플리케이션의 유지 보수성과 테스트 용이성 측면을 고려해 SQL, DataFrame, Dataset 등 API 중 적절한 것을 골라야 한다. 다만 API 유형에 상관없이 각 함수의 입력과 출력 타입을 문서로 만들고 테스트해야 한다.

단위 테스트 프레임워크에 연결하기

단위 테스트를 위해 표준 프레임워클르 사용하는 것이 좋다. 테스트 하네스에서 테스트마다 SparkSession을 생성하고 제거하는 것이 바람직하다.

데이터 소스 연결하기

테스트 코드에서는 운영용 데이터소스에 접속하는 것은 위험하다. 간단히 몇 개의 더미 데이터셋에 이름을 붙여 테이블로 등록하고 사용하는 것이 좋다.

Reference

스파크 완벽 가이드
아파치 스파크

profile
개발자 지망생입니다.

0개의 댓글