[Spark] Apache Spark 엔진에 대해 자세히 알아보자
📌 Spark Submit Spark Submit은 스칼라나 자바, 파이썬 등으로 작성된 스파크 애플리케이션을 클러스터에 제출하여 실행하기 위한 명령이다. 애플리케이션을 스칼라로 작성한 경우 아래와 같이 작성한다. /bin/spark-submit \ --master yarn \ --deploy-mode cluster \ ...
📌 Spark Submit Spark Submit은 스칼라나 자바, 파이썬 등으로 작성된 스파크 애플리케이션을 클러스터에 제출하여 실행하기 위한 명령이다. 애플리케이션을 스칼라로 작성한 경우 아래와 같이 작성한다. /bin/spark-submit \ --master yarn \ --deploy-mode cluster \ ...
📌 Spark DataFrame Spark DataFrame 은 RDD의 개념을 확장하여 데이터를 이름과 타입을 가진 열로 구성된 2차원 테이블로 다룰 수 있도록 한다. 데이터의 스키마를 내부적으로 가지고 있다. 특징 데이터는 이름과 타입이 정의된 열로 구성되었기 떄문에, 열의 이름을 사용하여 데이터에 접근할 수 있다. 스키마 정보를 가...
📌 RDD 관련 메서드 text_file = sc.textFile(test_file) textFile 은 텍스트 파일을 읽어 각 줄을 하나의 문자열로 갖는 RDD를 생성하는 메서드이다. counts = text_file.flatMap(lambda line: line.split(" ")) \ .map(lambda word:...
📌 Apache Spark란? Apache Spark 는 빅데이터를 효과적으로 처리하기 위한 분석 엔진이다. Hadoop 의 MapReduce 가 디스크 기반으로 처리하는 반면, Spark는 인메모리 기반 병렬 연산을 진행한다. 일반적으로 Spark가 Hadoop MapReduce보다 100배 정도 빠르다. 📌 특징 배치 프로세싱...
📌 Before public UserResponse getUser(Long userId) { return userRepository.findById(userId) .map(user -> UserResponse.of(user.getEmail(), user.getNickname())) .orElse...
📌 ResponseEntity란? ResponseEntity 는 HTTP 응답을 제어할 수 있도록 도와주는 클래스이다. 응답 body, 상태 코드, 헤더를 제어할 수 있다. HttpEntity 를 상속받아 구현되었다. @ResponseBody 는 응답의 body만 제어할 수 있다는 점에서 차이가 있다. 📌 구성 요소 public Response...
📌 정적 팩토리 메서드 패턴 Static Factory Method (정적 팩토리 메서드) 패턴은 객체 생성의 역할을 생성자 대신 정적 메서드에 위임하는 디자인 패턴이다. User user1 = new User("John", 30); User user2 = User.createWithNameAndAge("John", 30); 정적 팩토리 메서...
📌 @Column 어노테이션의 속성 엔티티의 속성을 정의할 때, @Column 어노테이션을 사용한다. name 속성을 통해 컬럼의 이름을 지정할 수 있고, nullable 속성을 통해 NOT NULL 제약 조건을 추가할 수 있다. unique 속성을 통해 UNIQUE 제약 조건을 추가할 수 있고, length 속성을 통해 컬럼의 길이를 지정할 수 있...
📌 개요 값에 대한 검증을 @Valid 어노테이션이나 @Column 어노테이션 등을 통해 구현할 수 있으나, 그 이상의 검증을 요구하는 경우 커스텀 어노테이션을 만들어 구현하는 것이 좋다. 요구사항은 다음과 같다. Player 엔티티는 name, role, information 필드를 가진다. Role 은 ADMIN, USER 가 존재한...
📌 Paging이란? Paging 은 전체 데이터를 한 번에 조회하는 것이 아닌, 일정 크기의 페이지 단위로 분할하여 조회하는 방법이다. 대량의 데이터를 한 번에 조회할 때 발생하는 메모리 사용량 문제를 해결할 수 있다. 📌 구성 요소 Pageable Pageable 는 페이징 정보를 추상화한 인터페이스이다. 페이지 번호, 하나의 페이지에 포함...