PySpark RDD 소개

PySpark로 배우는 빅데이터 기초

Upendra Devisetty

Science Analyst, CyVerse

RDD란?

  • RDD = Resilient Distributed Datasets

rdd

PySpark로 배우는 빅데이터 기초

RDD 구성 요소

  • Resilient Distributed Datasets

    • Resilient: 장애를 견딜 수 있음

    • Distributed: 여러 머신에 분산됨

    • Datasets: 파티션된 데이터 모음(예: 배열, 테이블, 튜플 등)

PySpark로 배우는 빅데이터 기초

RDD 생성 방법

  • 기존 객체 컬렉션을 병렬화

  • 외부 데이터셋:

    • HDFS의 파일

    • Amazon S3 버킷의 객체

    • 텍스트 파일의 라인

  • 기존 RDD에서 생성

PySpark로 배우는 빅데이터 기초

병렬화된 컬렉션(Parallelizing)

  • 파이썬 리스트로 RDD를 만들 때 parallelize() 사용
numRDD = sc.parallelize([1,2,3,4])
helloRDD = sc.parallelize("Hello world")
type(helloRDD)
<class 'pyspark.rdd.PipelinedRDD'>
PySpark로 배우는 빅데이터 기초

외부 데이터셋에서 생성

  • 외부 데이터셋으로 RDD를 만들 때 textFile() 사용
fileRDD = sc.textFile("README.md")
type(fileRDD)
<class 'pyspark.rdd.PipelinedRDD'>
PySpark로 배우는 빅데이터 기초

PySpark의 파티셔닝 이해

  • 파티션은 대규모 분산 데이터셋의 논리적 분할입니다

  • parallelize() 메서드

numRDD = sc.parallelize(range(10), minPartitions = 6)
  • textFile() 메서드
fileRDD = sc.textFile("README.md", minPartitions = 6)
  • RDD의 파티션 수는 getNumPartitions() 메서드로 확인합니다
PySpark로 배우는 빅데이터 기초

연습해 봅시다

PySpark로 배우는 빅데이터 기초

Preparing Video For Download...