yunki Kim Blog

「Do What You Love」

5. 구조적 API 기본 연산

DataFrame은 Row 타입의 레코드와 각 레코드에 수행할 연산 표현식을 나타내는 여러 컬럼으로 구성된다. DataFrame에 관한 용어는 다음과 같은 의미를 가진다. 스키마: 각 컬럼 명과 데이터 타입을 정의한다. 파티셔닝: DataFrame, DataSet이 클러스터에서 물리적으로 배치되는 형태 파티셔닝 스키마: 파티션을 배치하는...

4. 구조적API 개요

구조적 API를 사용하면 비정형, 반정형, 정형 데이터를 모두 처리할 수 있다. 구조적 API에는 다음과 같은 세 가지 분산 컬렉션 API가 있다. Dataset DataFrame SQL 테이블과 뷰 구조적 API를 사용하면 배치 작업을 간단히 스트리밍 작업으로 변환할 수 있다. 스파크는 트랜스포메이션 처리 과정을 정의하는 분산 프...

3. 스파크 기능 둘러보기

스파크는 저수분 API, 구조적 API, 추가 기능을 제공하는 표준 라이브러리로 구성되어 있다. 1. 운영용 애플리케이션 실행하기 spark-submit 명령어를 사용하면 대화형 셸에서 개발한 프로그램을 운영용 애플리케이션으로 전환할 수 있다. spark-submit 명령은 코드를 클러스터에 전송하고 실행시키는 역할을 한다. 스파크 애플리케이션은...

2. 스파크 간단히 살펴보기

스파크는 클러스터에서 데이터 처리 작업을 관리하고 조율하는 프레임워크이다. 연산에 사용할 클러스터는 클러스터 매니저가 관리한다. 사용자는 스파크 애플리케이션을 클러스터 매니저에게 제출(submit)한다. 사용자가 제출하면 클러스터 매니저는 애플리케이션 실행에 필요한 자원을 할당해서 작업을 마무리한다. 클러스터 매니저 종류로는 spark standalo...

1. 아파치 스파크란

아파치 스파크는 빅데이터를 위한 통합 컴퓨팅 엔진이자 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합이다. 1 아파치 스파크의 철할 1.1 통합 스파크 핵심 목표는 ‘빅데이터 애플리케이션 개발에 필요한 통합 플랫폼을 제공’하는 것이다. 통합이라는 특성은 다음과 같은 점에서 잘 나타난다. 다양한 데이터 분석 작업을 같은 연산 엔...

카프카 메시지 키값 설정으로 DB 동시성 이슈 해결하기

본 글에 사용된 코드는 문제 상황을 설명하기 위한 예시이며, 실제로 사용된 코드가 아닙니다. 회사에서 작성한 코드를 테스트하던 도중, 로컬에서는 발생하지 않는 문제가 테스트 서버에서는 발생하는 이상한 상황을 만났다. 문제 상황 DB 테이블 DDL은 다음과 같다. DB는 Postgresql이다. 1 2 3 4 5 create table t...

아파치 스파크 RDD 문법 예제

예제 1: 기본 문법 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 import pyspark test_file = "file:///home/jovyan/work/sample/helloWorld.txt" # test_file 내용: # hello w...

Chapter 1. 아파치 스파크 소개: 통합 분석 엔진

1. 스파크의 시작 구글 검색 엔진은 수많은 데이터를 색인하고 검색해야 한다. 이는 RDBMS 같은 저장 시스템으로는 불가능했기에 구글 파일 시스템(GFS - Google File System), 맵리듀스(MR - MapReduce), 빅테이블(BigTable) 등을 만들게 되었다. 이들은 각각 다음과 같은 역할을 한다. GFS: 클러스터 안...

1. 엘라스틱서치 소개

엘라스틱서치(ES - ElasticSearch)는 아파치 루씬(Lucene) 라이브러리를 기반으로 하는 분산 검색 엔진이다. ES는 데이터를 시각화해주는 키바나(kibana)와 엘라스틱서치에 색인할 데이터를 수집하고 변환하는 로그스태시(Logstash), 경량 데이터 수집 플랫폼 비츠(Beats)와 함께 ELK 스택을 이루고 있다. 엘라스틱서치는 분...

6장. 코틀린 타입 시스템

1. 널 가능성 널 가능성(nullability)는 NullPointerException 오류를 피할 수 있게 돕기 위한 코틀린 타입 시스템 특성이다. 최신 언어들은 널로 인한 문제를 최대한 방지하기 위해 널이 될 수 있는지를 타입 시스템에 추가해서 컴파일러가 여러 가지 오류를 컴파일 시 미리 감지해서 실행 시점에 발생할 수 있는 예외의 가능성을 줄...