Docker로 손쉽게 Jupyter와 Spark 사용하기

이전에 윈도우(Windows) 10 환경에서 스파크(Spark)를 설치하는 방법에 대한 글을 작성한 적이 있었는데, 한 번 셋팅해놓고 잘 쓰다가 컴퓨터를 포맷한다거나 하면서 환경 구성이 바뀌면 여간 골치아픈 것이 아닙니다. 그래서 도커(Docker) 이미지를 이용해서 손쉽게 서버를 올렸다 내렸다 하면서 사용할 수 있는 환경 구축에 대해서 알아보고자 합니다. 도커 설치 아래의 주소로 가셔서 도커…

Continue reading Docker로 손쉽게 Jupyter와 Spark 사용하기

Spark에서 Window 함수의 다양한 이용

스파크(Spark)에서 데이터 프레임을 다루다 보면, 다양한 함수들이 요구됩니다. 기본 함수들은 직관적으로 새로운 값을 생성하는 것에 초점을 맞추고 있습니다. 그런데, 많은 경우에 데이터 비교를 위해서 현재 행을 이전 행과 비교하기를 원합니다. 혹은 특정 컬럼에 대해서 Partiton된 데이터를 구하고 싶기도 합니다. 이럴 때에 주로 사용하는 함수가 바로 Window 함수입니다. 스파크의 윈도우 함수는…

Continue reading Spark에서 Window 함수의 다양한 이용

Spark 작업 병렬로 처리하기

빅데이터 처리를 위해서 스파크(Spark)가 인기를 끈 이유는 대용량 데이터를 병렬로 처리할 수 있다는 것입니다. 그래서 스파크를 처음에 접했을 때는 모든 작업이 병렬로 처리된다는 생각을 하게 되고, 이 때문에 스파크는 항상 병렬 처리를 한다고 믿었습니다. 물론 이것은 사실입니다. 그런데, 아래와 같은 워크로드를 가지는 경우를 생각해 봅시다. 처음에는 하나의 노드에서만 처리하다가 중간에…

Continue reading Spark 작업 병렬로 처리하기

Jupyter Lab에서 Spark 실행하기

스파크(Spark)로 개발을 하다보면 간단한 작업은 로컬에서 진행하고 싶은 경우가 있습니다. 겨우 이거 하나 하겠다고 스칼라(Scala)로 코드를 짜서 Jar를 만들고 스파크 클러스터에 작업을 제출하는 것은 너무나 불편하기만 합니다. 그래서 Jupyter Lab을 이용해서 간단한 스파크 코드를 작성하고 실행하는 과정을 소개하고자 합니다. 앞선 글에서 아나콘다를 이용해 Jupyter Lab은 설치를 했으므로 이 부분은 건너…

Continue reading Jupyter Lab에서 Spark 실행하기

EMR을 이용한 자동 Spark 배치 만들기

회사에서 많은 AWS 서비스를 사용해보면서 어느 날 번뜩 떠오른 아이디어가 있었습니다. 사실 전문가 분들은 이미 많이 사용하고 있는 것 같았지만 왠지 내가 대단한 발견이라도 한 것 같고 나름의 성취감도 있었지요. AWS의 EMR을 이용하여 Spark 배치 작업을 자동으로 실행하고 작업이 종료되면 EMR도 종료하여 비용 절감까지 가능한 아키텍처를 살펴볼까 합니다. 기본적으로 사용하게…

Continue reading EMR을 이용한 자동 Spark 배치 만들기