「Spark로 쇼핑 세션 분석하기」는 PySpark 배치 처리의 기초를 아는 학습자를 위한 실습 프로젝트입니다. 종료된 상점 방문 로그를 재사용 가능한 분석으로 바꾸며, 반복 이벤트와 조회한 세션/상품 쌍을 구분하고 올바른 상품과 시각을 기준으로 장바구니 추가를 연결합니다.
안내 실습 2개에서 관계 판정과 완전한 상품 비교표를 만들고, 독립 도전 과제 1개에서 같은 규칙을 다른 상점의 배치에 적용합니다. 각 비율을 설명하는 개수와 함께 실제 Parquet 데이터셋과 일치하는 작은 CSV를 완성합니다. 125~155분은 읽기와 일반적인 오류 처리를 포함한 작성자의 예상 시간입니다.
학습 내용
이 과정을 마치면 다음을 할 수 있습니다.
- 완전히 동일한 이벤트 재전송을 제거한 뒤 조회한 각 세션/상품 쌍과 최초 조회 시각을 유지합니다.
- 다른 상품의 장바구니 추가를 가져오거나 여러 추가가 일치할 때 한 흐름을 중복 계산하지 않고 유효한 추가의 존재를 판정합니다.
- 조회 세션 수를 분모로 사용해 완료·미완료 개수와 미완료 비율을 계산합니다.
- 유효한 장바구니 추가가 없는 상품과 모든 동률 결과를 유지합니다.
- 실제 Parquet와 CSV 결과를 쓰고 읽으며, 원본 입력을 보존하면서 파생 스냅샷을 다시 만듭니다.
- 종료된 세션의 패턴이 고유 인원 수나 인과관계의 증명이 아닌 관찰 단서인 이유를 설명합니다.
추천 대상
이 프로젝트는 Spark의 데이터 관계와 요약 지표를 신뢰할 수 있게 만들고 싶은 예비 데이터 분석가와 데이터 엔지니어에게 적합합니다.
선수 지식: 기본적인 터미널 파일 탐색과 「초보자를 위한 Apache Spark」의 명시적 스키마, 필터링, 완전히 동일한 중복 제거, DataFrame 조인, 그룹화, Parquet 지식이 필요합니다. 이 프로젝트는 세션/상품 관찰 단위, 최초 조회 시각, semi/anti join, 완전한 비교를 위한 분모를 소개합니다.
학습 환경: 각 실습은 Spark, Python, 로컬 배치 파일과 간단한 출력 드라이버가 준비된 독립적인 브라우저 Terminal을 제공합니다. Spark는 한 머신에서 로컬 작업 스레드 2개를 사용합니다. 설치나 Hive, Kafka, 원격 클러스터는 필요하지 않습니다.
자주 묻는 질문
Python을 작성하나요?
네. Spark DataFrame을 반환하는 작고 재사용 가능한 함수를 완성합니다. 안내 실습은 함수 매개변수와 관계 표현식을 사용하기 전에 설명합니다. 제공된 드라이버가 세션 생성과 파일 직렬화를 처리합니다.
실시간 퍼널이나 고유 고객 보고서인가요?
아닙니다. 입력은 유효한 식별자와 UTC 타임스탬프를 가진 종료된 세션의 유한 배치입니다. 세션은 한 번의 방문을 식별하며 여러 상품의 조회를 포함할 수 있습니다. 스트리밍, 결제, 기기 간 신원 식별은 이 과정의 범위가 아닙니다.
도전 과제에서는 무엇이 달라지나요?
배치 식별자와 이벤트 사이의 관계가 달라집니다. Spark 도구, 시간 규칙, 출력 형식과 복구 방법은 같습니다. 장바구니 추가가 없는 상품과 동률 결과를 포함한 완전한 비교를 유지해야 합니다.


