[Spark] 5. File Format

2024. 12. 3. 00:34·데이터/Spark

Spark File Format

CSV

  • 특징
    • 텍스트 기반의 파일 포맷
    • 데이터를 콤마로 구분
  • 장점
    • 매우 단순하고, 다른 시스템에서 쉽게 사용 가능
    • 가벼운 데이터 전송을 위해 사용
  • 단점
    • 스키마 정보가 포함되지 않아서 데이터 구조를 명확히 알 수 없음
    • 큰 데이터셋 처리 시 성능 저하
  • 예시
df = spark.read.option("header", "true").csv("path/to/file.csv")

 

JSON

  • 특징
    • 텍스트 기반의 파일 포맷
    • 키-값 쌍의 형태로 데이터 저장
    • 데이터 계층 구조 지원
  • 장점
    • 유연한 데이터 구조 지원
    • 다른 시스템과 쉽게 호환
  • 단점
    • 대량의 데이터에 대해 성능 좋지 않음 (텍스트로 저장되기에 크기 증가)
    • 스키마 정보 명시적으로 제공 X
  • 예시
df = spark.read.json("path/to/file.json")

 

Parquet

  • 특징
    • 컬럼 지향적 파일 포맷
    • 효율적인 데이터 압축 및 성능 최적화 제공
    • 스키마 정보 포함
    • HDFS, S3와 같은 분산 파일 시스템에서 사용
  • 장점
    • 컬럼 기반 저장 방식으로, 쿼리 성능 최적화 가능
    • 필요한 컬럼만 읽을 수 있어 I/O 감소
    • 데이터 압축을 잘 지원하여 저장 공간 절약과 읽기 성능 향상
    • Spark와 다른 빅데이터 처리 시스템과 호환성 높음
  • 단점
    • 가독성이 떨어짐
  • 예시
df = spark.read.parquet("path/to/file.parquet")

 

ORC

  • 특징
    • Parquet과 비슷한 컬럼 지향적 포맷
    • 주로 Hive와 연동
    • 성능 최적화를 위해 컬럼 압축 및 효율적인 데이터 저장 방식 사용
  • 장점
    • 컬럼 기반 저장 방식으로 쿼리 성능 최적화
    • Parquet보다 압축 효율, 처리 성능이 뛰어남
  • 단점
    • Hive 중심으로 설계되어 있어, 다른 시스템과의 호환성에서 Parquet보다 제한적
  • 예시
df = spark.read.orc("path/to/file.orc")

 

Avro

  • 특징
    • 레코드 지향적 파일 포맷
    • 주로 대용량 처리 시스템에서 사용
    • JSON 기반으로 데이터를 표현하지만, 이진 형식으로 저장되어 크기가 더 작고 성능 좋음
    • 스키마를 내장하여 데이터를 직렬화
  • 장점
    • 스키마를 명시적으로 포함하고 있어, 데이터 구조를 명확하게 정의
    • 효율적인 이진 포맷으로 저장되어 성능 좋음
    • 데이터 버전 관리와 호환성 유지에 유리
  • 단점
    • 가독성 떨어짐
  • 예시
df = spark.read.format("avro").load("path/to/file.avro")
저작자표시 (새창열림)

'데이터 > Spark' 카테고리의 다른 글

[Spark] 7. Partitioning & Bucketing  (0) 2024.12.03
[Spark] 6. Spark Execution Plan  (1) 2024.12.03
[Spark] 4. Database & Table  (2) 2024.12.03
[Spark] 3. Spark SQL  (1) 2024.12.02
[Spark] 2. Spark Session  (0) 2024.12.02
'데이터/Spark' 카테고리의 다른 글
  • [Spark] 7. Partitioning & Bucketing
  • [Spark] 6. Spark Execution Plan
  • [Spark] 4. Database & Table
  • [Spark] 3. Spark SQL
김줘
김줘
김줘와 같이 데이터, 컴퓨터, IT 공부
  • 김줘
    초보개발자 김줘의 코딩일기
    김줘
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 데이터 엔지니어링 데브코스
      • 데이터
        • Airflow
        • Spark
        • Kafka
        • dbt
      • TroubleShooting
      • Docker
      • AWS
      • 크롤링, 스크래핑, 시각화
        • Selenium
        • 시각화
      • 코딩테스트
        • 프로그래머스
        • 입출력과 사칙연산
        • 정렬
      • Django
      • 자바 공부
      • 끄적끄적
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬
    자바
    Java
    Azure
    초보개발자
    Airflow
    프로그래밍
    Python
    TiL
    데이터 엔지니어링 데브코스 4기
    cloud
    티스토리챌린지
    데이터 엔지니어링 데브코스
    부트캠프
    오블완
    프로그래머스
    에어플로우
    aws
    데브코스
    데이터 엔지니어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
김줘
[Spark] 5. File Format
상단으로

티스토리툴바