[8월 미니프로젝트] Spark 사용해보기 - 2

임재규·2023년 9월 11일
0

프로젝트

목록 보기
11/11

쇼핑몰 데이터 EDA

캐글에서 가지고 온 쇼핑몰 로그 데이터(8,9월 자료)를 병합하여 탐색한 내용

데이터 합치기

스파크 세션을 띄우고 스키마를 자동으로 설정하게 하고, 헤더가 있는 자료라는 옵션을 주어 불러왔다. 이후 union을 이용하여 합쳤다.

  • union - 데이터를 합치고 중복된 행을 제거
  • unionAll - 데이터를 합치고 중복된 행을 유지

printSchema를 활용하여 스키마 구조 탐색

category_code 전처리

csv파일에 category_code 칼럼이 electronics.audio.headphone과 같은 형식으로 .을 기준으로 대, 중, 소분류가 되어있었다.

이를 나눠서 탐색하고자 .을 기준으로 나누고 새로운 칼럼을 생성했다.
major_category, intermediate_category, minor_category 각각 대, 중, 소 분류 칼럼으로 생성

from pyspark.sql.functions import split, col

# DataFrame의 category_code 칼럼을 대, 중, 소 분류로 분할
shop = result_df.withColumn("category_list", split(col("category_code"), "\."))

# 대분류, 중분류, 소분류 칼럼 생성
shop = shop.withColumn("major_category", col("category_list")[0])
shop = shop.withColumn("intermediate_category", col("category_list")[1])
shop = shop.withColumn("minor_category", col("category_list")[2])

# 중복되는 칼럼 제거
shop = shop.drop("category_list")
# 결과 확인
shop.show()

카테고리를 대상으로 데이터를 분석하고 싶어 카테고리가 null값인 경우를 제외하였다.

shop = shop.filter(col("category_code").isNotNull())

이후 데이터의 수를 확인해보니 아래와 같이 나왔다.

EDA

”저희 고객사별로 이번 분기 프로모션 지원 대상좀 추려보려고 하는데, 현재 카테고리 별로 전환율이랑 매출 현황좀 분석해주세요” 라는 물음을 배경으로 하여
전환율 현황 분석 리포트를 위한 탐색을 했다.

합친 데이터를 임시 뷰를 만들어 EDA 해보려 한다.

shop.createOrReplaceTempView("shop")

매출

  1. 대분류의 카테고리 중 가장 많은 구매 카운트 상위 10건 출력

  • 전자제품, 가구, 컴퓨터 순으로 많았다.
  1. 가장 많이 팔린 품목인 전자 제품을 판 브랜드 중 상위 10개 브랜드는?

  • 삼성, 애플, 샤오미 순이었다.

전환율

  1. event_type 확인
    view, cart, purchase로 보기, 카트 담기, 구매로 나눠져 있었다.

  1. 쇼핑몰에서 뷰만 하던 이용자 중에 카트로 담은 비율 확인
    4%로 그리 큰 비율이 아니었다.

  2. 카트로 담은 이용자 중 구매로 넘어가는 비율 확인
    40%로 상대적으로 큰 비율이었다.

  3. 구매하는 경로인 뷰>카트>구매뷰> 구매 확인
    보기만 하고 바로 구매하는 경우도 있었지만 17%밖에 되지 않았고, 카트에 담은 후에 구매로 전환되는 비율은 41%로 상대적으로 더 컸다.

차트 시각화

view to cart, cart to purchase, view to purchase 3가지 항목을 비율화하여 파이차트로 표시해 본 결과 카트에 담아 구매로 넘어가는 전환율이 압도적으로 높았다.

추론

사람들이 구매하는 과정에서 여러 제품을 많이 구경한다. 상품 비교를 많이 해보는 것으로 추정된다.
하지만 많은 사람들이 본다고 해서 카트 담기로 전환하는 비율은 크지 않다.
카트 담기로 전환된 제품들은 구매로 이어질 확률이 보다가 구매하는 것보다 크게 증가한다.

카트 담기에 대한 프로모션을 진행한다면 구매 유도하는데 더 도움이 되지 않을까 추측한다.
예) 카트 담기 시 할인 쿠폰을 제공 (기간 설정)

추후

매출과 전환율을 관련지어 구매 예측 모델을 만들어 보려한다.

profile
공부 기록

0개의 댓글