[Spark] 변환과 액션
·
Data/Spark
스파크에서의 변환과 액션에 대해 정리한 글입니다. 1. 들어가며스파크의 동작 원리를 이해하기 위해 유튜브의 PySpark - Zero to Hero 시리즈와 여러 자료를 보면서 내용을 정리하고 있습니다. 이번 글에서는 스파크의 변환(Transformation)과 액션(Action)에 대해 다뤄보겠습니다. 내용 중 부정확하거나 애매한 부분이 있다면, 편하게 알려주세요! 2. 스파크 데이터 처리의 기초2.1. 변환과 불변성스파크의 데이터프레임은 내부적으로 RDD(Resilient Distributed Dataset) 위에서 동작하는데, RDD는 한 번 생성되면 수정할 수 없는(immutable) 데이터 구조입니다. 그렇다면, 스파크에서는 어떻게 데이터를 가공할 수 있을까요? 스파크는 기존 데이터를 수정하지 ..
[Databricks] SQL로 S3 Parquet 파일 테이블처럼 읽기
·
Data/Databricks
Databricks로 개발하다가 알게된 소소한 지식/경험을 공유합니다.오늘은 Databricks SQL로 S3에 저장된 Parquet 파일을 테이블처럼 읽는 방법을 다룹니다. 1. 들어가며업무 중, S3에 있는 Parquet 파일의 데이터를 쿼리로 빠르게 확인하고 싶은 상황이 생겼습니다. External Table로 등록해도 되지만, 스키마 정의나 테이블 생성을 해줘야 하는 번거로움이 있는데요. 이번 글에서는 더 간단하게 Databricks SQL로 S3에 있는 파일들을 테이블처럼 읽는 방법을 정리해보겠습니다. 2. 사용 방법2.1. 단일 파일 읽기아래처럼 파일 포맷과 경로만 지정해주면, Databricks SQL이 Parquet 파일 안에 있는 메타 데이터를 읽어서, "어떤 컬럼이 있고, 데이터 타입은..
[Spark] 스파크란 무엇인가?
·
Data/Spark
스파크가 무엇인지를 정리한 글입니다. 1. 들어가며일을 하면서 PySpark를 사용하다 보니, 그때그때 필요한 기능만 쓰게 되어서, "이참에 전체적으로 한번 정리해봐야겠다"는 생각이 들었습니다. 그래서 유튜브의 PySpark - Zero to Hero 시리즈를 기반으로 스파크의 기본 개념과 동작 방식을 하나씩 정리해보려고 합니다. 이번 글에서는 스파크가 무엇인지, 어떻게 작동하는지를 간단히 살펴보겠습니다. 2. 스파크란 무엇인가?스파크는 한마디로, 엄청 큰 데이터를 여러 컴퓨터가 나눠서 빠르게 처리할 수 있도록 도와주는 오픈소스 프로그램입니다. 흔히 "빅데이터 처리 엔진"이라고 부르는데요. 여기서 엔진이란, 데이터를 읽고, 나누고 계산해서 원하는 결과를 만들어내는 "두뇌" 같은 존재라고 생각하면 됩니다...
[SQL] Histogram of Tweets
·
PS
오늘은 DataLemur의 Histogram of Tweets 문제를 풀어보겠습니다. 문제트위터의 트윗 데이터가 담긴 `tweets` 테이블이 있다. 각 유저가 2022년에 작성한 트윗 개수를 기준으로 유저를 그룹화하여 출력하는 SQL 쿼리를 작성하시오.`tweets` 테이블 구조Column NameTypetweet_idintegeruser_idintegermsgstringtweet_datetimestamp출력`tweet_bucket`: 트윗 개수`users_num`: 해당 트윗 개수를 가진 유저 수 풀이 1: 단순하게 풀기가장 먼저 떠오르는 방법은 서브쿼리를 이용하는 것이다. 단순하게 "2022년 데이터 필터링 -> 유저별 개수 세기 -> 그 개수를 다시 그룹화"하는 방식을 이용하는 것으로, 아래와 같..
[PS] 백준 1697번: 숨바꼭질
·
PS
오늘은 백준의 1697번 숨바꼭질 문제를 풀어보겠습니다.문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.예제# Input:5 17..
[번역] AI 시대에 데이터 엔지니어가 살아남는 법 (3 / 3)
·
Data/Curation
AI 시대, 데이터 엔지니어의 역할은 어떻게 달라질까요?얼마 전 읽은 글에서 인상 깊었던 부분들을 정리해 공유합니다. 파트 1과 2는 이전 포스트에서 보실 수 있습니다.글 전체가 아닌, 개인적으로 중요하다고 생각되는 부분만 옮겼습니다.원문이 궁금하신 분들은 링크를 참고해주세요. AI로 인해 데이터 엔지니어의 역할도 빠르게 바뀌고 있다. 몇 줄의 프롬프트만으로도 파이프라인을 만들고, SQL을 작성하고, Airflow DAG을 생성할 수 있다. 하지만 AI가 바꿀 수 없는 진실도 있다.잘못된 설계는 결국 프로덕션 환경에서 문제를 일으킨다.좋은 엔지니어링 Practice는 여전히 유효하다.제대로 구조를 잡지 않고 빠르게 개발하기만 하는 건, 발전이 아니다. 데이터 파이프라인이 점점 복잡해지고 자동화가 고도화될..
[번역] AI 시대에 데이터 엔지니어가 살아남는 법 (2 / 3)
·
Data/Curation
AI 시대, 데이터 엔지니어의 역할은 어떻게 달라질까요?얼마 전 읽은 The Only AI Data Engineering Roadmap You Need In 2025라는 글에서 인상 깊었던 부분들을 정리해 공유합니다.글 전체가 아닌, 개인적으로 중요하다고 생각되는 부분만 옮겼습니다.원문이 궁금하신 분들은 링크를 참고해주세요. 데이터 엔지니어를 위한 필수 디자인 패턴2025년 데이터 엔지니어의 역할은 단순히 데이터를 A에서 B로 옮기는 일에서 그치지 않는다. 진짜 가치는 데이터를 어떻게 구조화하고, 이를 바탕으로 분석과 ML에서 활용 가능한 형태로 가공하는지에 달려 있다. dbt, Spark, Airflow, Apache Flink 같은 도구를 다루는 것도 중요하지만, 적절한 데이터 설계 패턴을 이해하고,..
[번역] AI 시대에 데이터 엔지니어가 살아남는 법 (1 / 3)
·
Data/Curation
AI 시대, 데이터 엔지니어의 역할은 어떻게 달라질까요?오늘은 The Only AI Data Engineering Roadmap You Need in 2025라는 포스트의 초반부를 소개합니다.글 전체가 아닌, 개인적으로 중요하다고 생각되는 부분만 옮겼습니다.원문이 궁금하신 분들은 링크를 참고해주세요. AI와 함께 변화하는 데이터 엔지니어의 역할예전에는 데이터 엔지니어의 주요 업무가 ETL 스크립트 작성, 데이터 웨어하우스 관리에 집중되어 있었지만, AI의 발전으로 인해서 이제는 많이 달라졌다. Windsurf 같은 도구는 자연어 프롬프트만 주면 DAG을 자동으로 만들어준다. Cursor는 팀 동료보다 더 정확하게 SQL을 자동 완성해준다. 데이터 품질 검사나 스키마 변경 감지도 AI 기반 알림과 패치가..