[Spark] Spark?

Peter·2021년 7월 20일
0

Spark

목록 보기
1/11

Spark의 구동

  • Spark는 기본적으로 메모리 기반
  • 메모리가 부족해지면 디스크사용
  • 분산 컴퓨터 환경 지원
  • 배치 프로그래밍, 스트리밍 프로그래밍, SQL, 머신 러닝, 그래프 분석 등의 서비스 지원

Spark의 구조

  • 드라이버 프로그램의 존재
  • 클러스터 매니저를 통해 데이터를 워크노드에 분산시켜줌

Spark 프로그래밍 개념

  • RDD(Resilient Distributed Dataset)
    - 로우레벨 프로그래밍 API로 세밀한 제어 가능
    - 코딩의 복잡도 증가
  • Dataframe & Dataset(판다스의 데이터프레임과 흡사)
    - 하이레벨 프로그래밍 API로 점점 많이 사용하는 추세
    - SparkSQL을 사용한다면 쓰게 됨

Pandas비교

공통점

  • 구조화된 데이터를 읽어오고 저장
    - csv, json 등 다양한 포맷 지원
    - 웹과 관계형 데이터베이스에서 읽어오는 것도 가능
  • 다양한 통계 제공
    - 평균, 표준편차 등 컬럼별 계산가능
    - 컬럼간 correlation 계산 가능
  • 데이터 청소작업(데이터 전처리)
    - 컬럼별로 값이 존재하지 않는 경우 디폴트 값 지정
    - 컬럼별로 값의 범위를 조정
  • Visualization
    - Matplotlib와 연동해 다양한 형태의 시각화 지원

Pandas의 데이터 구조

  • 엑셀의 시트에 해당하는 것이 Dataframe
  • 엑셀 시트의 컬럼에 해당하는 것이 Series
  • 입력 dataframe을 원하는 최종 dataframe으로 계속 변환하는 것이 핵심

차이점

  • Pandas는 소규모의 구조화된 데이터를 다루는데서 최적
  • Spark는 큰데이터를 여러 서버에 병렬 처리를 지원함
profile
컴퓨터가 좋아

0개의 댓글