PySpark 데이터를 Pandas와 Plotly로 시각화하기

Ryan·2025년 1월 18일

SQL/Python 분석

목록 보기
88/94

1. PySpark 데이터에서 Pandas로 변환

PySpark의 데이터프레임을 Pandas 데이터프레임으로 변환하려면 toPandas()를 사용합니다:

sample_pd = df.filter(F.col("City") == "WAUKEE").toPandas()

Pandas로 변환하는 이유

  • 시각화 필요: 대부분의 시각화 라이브러리는 Pandas를 기반으로 동작합니다.
  • 메모리 의존: Pandas는 데이터를 메모리에 로드하므로, 대용량 데이터에는 적합하지 않지만 작은 데이터셋에서는 효과적입니다.

2. Pandas 데이터 그룹화 및 요약

Pandas를 활용하여 데이터를 그룹화하고 요약할 수 있습니다:

WAUKEE_pd = (
    sample_pd
    .groupby("Date")  # Date 기준으로 그룹화
    .sum()             # 그룹별 합계 계산
    .reset_index()     # 인덱스를 초기화하여 Date 컬럼 유지
)

3. Plotly를 활용한 데이터 시각화

Plotly Graph Objects

import plotly.graph_objects as go

# Figure 생성
fig = go.Figure(
    data=[go.Line(x=WAUKEE_pd["Date"], y=WAUKEE_pd["BottlesSold"])],
    layout=go.Layout(
        title=go.layout.Title(text="Bottles Sold Amount at WAUKEE")
    )
)

fig.show()

Plotly Express

import plotly.express as px

fig = px.line(
    x=WAUKEE_pd["Date"],
    y=WAUKEE_pd["BottlesSold"],
    title="Bottles Sold Amount at WAUKEE"
)

fig.show()

4. Plotly Graph Objects vs Express

Graph ObjectsExpress
세부적으로 커스터마이징 가능간단한 코드로 빠른 시각화
복잡한 레이아웃 구성 가능제한적인 커스터마이징 지원

Plotly 사용의 장점

  • 대화형 그래프 생성 가능
  • Dash를 사용하여 웹 대시보드로 확장 가능

5. Pandas 기본 시각화와 Plotly 결합하기

Pandas 기본 시각화 옵션을 Plotly로 설정하여 손쉽게 그래프를 생성할 수 있습니다:

import pandas as pd

# Plotly를 Pandas의 시각화 백엔드로 설정
pd.options.plotting.backend = "plotly"

# Plotly로 히스토그램 생성
WAUKEE_pd["BottlesSold"].hist()

정리

  1. PySpark의 역할: 대용량 데이터를 병렬 처리하며, 효율적으로 전처리할 수 있는 강력한 도구입니다.
  2. Pandas로 변환: Pandas는 메모리 기반의 분석 도구로, PySpark에서 전처리된 데이터를 더 세밀히 다룰 때 유용합니다.
  3. Plotly 활용: 대화형 시각화를 통해 데이터를 쉽게 이해하고, 보고서를 작성하거나 웹 대시보드로 활용할 수 있습니다.

마무리

이번 포스팅에서는 PySpark 데이터를 Pandas로 변환하고 Plotly를 활용하여 데이터를 시각화하는 과정을 살펴보았습니다. PySpark는 대규모 데이터를 처리하는 데 강력하지만, Pandas와 Plotly는 소규모 데이터를 상세히 분석하고 시각화하는 데 매우 유용합니다.

Plotly를 활용하면 대화형 그래프를 통해 데이터를 더 직관적으로 탐색할 수 있으며, Dash와 같은 확장 도구를 사용하면 웹 애플리케이션 형태로 데이터 시각화를 배포할 수도 있습니다.

0개의 댓글