본문 바로가기

Study

(27)
[Apache Spark] Dataframe의 Schema 지정하기 Pyspark에서 Header가 존재하지 않는 csv 파일을 Dataframe으로 불러올 때에 Schema를 지정하는 방법은 다음과 같습니다. 1. StructType을 이용하여 Schema를 정의하고, 이를 적용하는 방법 from pyspark.sql.types import StructType, StructField, StringType, IntegerType # 스키마 정의 schema = StructType([ StructField("column1", StringType(), True), StructField("column2", IntegerType(), True), StructField("column3", StringType(), True) ]) # CSV 파일을 DataFrame으로 읽어오기 d..
[Apache Spark] "Python3" 명령어 실행 불가로 인한 오류 코드 실행 도중에, 특정 Spark 액션에 대해서 다음과 같은 메세지와 함께 실행이 종료되는 오류가 있었다. [에러 메세지] py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0) (DESKTOP-642PDKR.mshome.net executor driver): jav..
[Apache Spark] 로컬 환경에서 Apache Spark 설치하기 로컬 환경에서 단일 클러스터로 Apache Spark를 설치하기 위해서는 1. JDK 설치 2. Python 설치 3. Apache Spark 설치 4. Hadoop Winutil 설치 5. 시스템 환경변수 설정 이렇게 총 5단계를 거쳐야 한다. 1. JDK 설치 Apache Spark는 Scala로 구현되어 있고 JVM 위에서 동작하기 때문에 Java를 먼저 설치해주어야 한다. 본인의 경우, 원래 Java 17 환경이 세팅되어 있었는데 version 때문인지 Spark 실행이 되지 않아 11.0.18로 재설치 해주었다. Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support avai..
[데이터 파이프라인 핵심 가이드] 2. 최신 데이터 인프라 ▽ 1장 데이터 파이프라인 소개는 이전 포스팅을 참고해주세요 ▽ [데이터 파이프라인 핵심 가이드] 1. 데이터 파이프라인 소개 본 포스팅은 위키북스 사의 "데이터 파이프라인 핵심 가이드"의 내용을 정리한 글입니다. 1. 데이터 파이프라인 소개 1 - 1. 데이터 파이프라인이란? 데이터 파이프라인은 다양한 소스에서 새로운 it-is-my-life.tistory.com 2. 최신 데이터 인프라 이 장에서는 파이프라인을 구축하기 위한 제품과 설계를 결정하기 전에 최신 데이터 인프라를 구성하는 주요 구성 요소에 대한 설명이 등장한다. 2 - 1. 데이터 소스의 다양성 대부분의 조직에는 분석 작업의 수행 대상이 되는 수십개에서 수백개의 데이터 소스가 존재한다. 데이터 소스들은 여러 차원으로 구분될 수 있다. 소스..
[airflow] Docker에서 airflow 환경 설정 및 실행하기 이번 포스팅에서는 Docker-compose를 활용하여 apache airflow를 실행하는 방법을 다룬다. 본 포스팅은 airflow 공식 document의 "Running airflow in Docker"를 참고하였으며 하단의 링크를 통해서 해당 문서로 이동할 수 있다. Running Airflow in Docker — Airflow Documentation airflow.apache.org Before You Begin (필수 도구 설치) 설치 이전에 airflow 이미지를 실행하기 위한 Docker와 Docker-compose의 설치 or 업데이트가 필요하다. Install on Windows docs.docker.com 본인은 Windows의 환경에서 설치를 진행하였으므로 위 링크를 통해서 Do..
[요리고 Airflow 도입기] 0. Airflow 사용을 결정한 이유 SW마에스트로 과정에서 본인은 AI 및 데이터 파트를 담당하여 "요리고" 모델에 대한 2개의 AI 모델 개발 및 데이터 파이프라인(이라고 부르지만 서빙이 전부)을 개발하였다. 소마가 끝난 후에 여러모로 데이터 파이프라인 부분에 아쉬움이 많이 남았고, 간단한 사이드 프로젝트로 airflow를 활용하여 데이터 파이프라인을 개선해보려고 한다. 기존 "요리고"의 시스템 구성은 다음과 같다. AI 모델의 경우, 서버비 절감을 위해서 Preprcessing, Inference, Postprocessing을 하나의 도커 이미지로 빌드하고 클라이언트의 요청이 있을 때마다 람다를 통해서 컨테이너를 생성하는 형태로 서빙을 진행했고 동작에는 무리가 없었으나 다음과 같은 문제점이 있었다. 1. Preprocessing이나 새..
[백준] 2294 - 동전 2 보자마자 다이나믹 프로그래밍으로 풀어야겠구나 생각했던 문제이다. n = 3, k = 7, 동전은 2, 5, 7가 있다고 가정했을 때를 살펴보자. k 0 1 2 3 4 5 6 7 동전 개수 0 inf inf inf inf inf inf inf 2, 5, 7의 가치를 가진 동전으로는 k == 1을 만들 수 없으므로 계속 inf이다. k 0 1 2 3 4 5 6 7 동전 개수 0 inf 1 inf inf inf inf inf 2의 가치를 가진 동전으로 k == 2를 만들 수 있으므로, cache[2]는 cache[2 - 2] + 1과 cache[2] 중 작은 수인 cache[2 - 2] + 1 = cache[0] + 1 = 1이 된다. 이런 식으로 cache를 채워나가면, k 0 1 2 3 4 5 6 7 동전..
[데이터 파이프라인 핵심 가이드] 1. 데이터 파이프라인 소개 본 포스팅은 위키북스 사의 "데이터 파이프라인 핵심 가이드"의 내용을 정리한 글입니다. 1. 데이터 파이프라인 소개 1 - 1. 데이터 파이프라인이란? 데이터 파이프라인은 다양한 소스에서 새로운 가치를 얻을 수 있는 대상으로 데이터를 옮기고 (load) 변환하는 (transform) 일련의 과정이다. 데이터 파이프라인은 Rest API와 같은 단일 소스에서 데이터를 추출하고 데이터 웨어하우스의 SQL 테이블과 같은 다른 대상으로 데이터를 로드하는 간단한 구조의 파이프라인부터 추출된 데이터에 대한 유효성 검사, 가공 과정, 머신러닝 모델 추론과 같은 과정들이 추가되는 복잡한 구조의 파이프라인까지 다양한 복잡성을 가진다. 실제로 필자가 수행했던 프로젝트에서도 클라이언트로부터 받은 사용자 데이터를 가공하여 A..