PySpark DataFrame 소개

PySpark로 배우는 빅데이터 기초

Upendra Devisetty

Science Analyst, CyVerse

PySpark DataFrame이란?

  • PySpark SQL은 구조적 데이터용 Spark 라이브러리입니다. 데이터와 연산의 구조 정보를 더 제공합니다

  • PySpark DataFrame은 열 이름이 있는 불변 분산 컬렉션입니다

  • 구조적(예: 관계형 DB)과 반구조적 데이터(예: JSON) 처리를 지원합니다

  • DataFrame API는 Python, R, Scala, Java에서 제공합니다

  • PySpark DataFrame은 SQL 쿼리(SELECT * from table)와 표현식 메서드(df.select()) 모두를 지원합니다

PySpark로 배우는 빅데이터 기초

SparkSession - DataFrame API 진입점

  • SparkContext는 RDD 생성을 위한 기본 진입점입니다

  • SparkSession은 Spark DataFrame과 상호작용하는 단일 진입점을 제공합니다

  • SparkSession으로 DataFrame 생성, 등록, SQL 쿼리 실행을 수행합니다

  • PySpark 셸에서 SparkSession은 spark로 제공됩니다

PySpark로 배우는 빅데이터 기초

PySpark에서 DataFrame 생성

  • PySpark에서 DataFrame 생성 방법 두 가지

    • 기존 RDD에서 SparkSession의 createDataFrame() 사용

    • 다양한 데이터 소스(CSV, JSON, TXT)에서 SparkSession의 read 사용

  • 스키마는 데이터를 제어하고 쿼리 최적화를 돕습니다

  • 스키마는 열 이름, 데이터 타입, 빈 값 등 정보를 제공합니다

PySpark로 배우는 빅데이터 기초

RDD에서 DataFrame 생성

iphones_RDD = sc.parallelize([
    ("XS", 2018, 5.65, 2.79, 6.24),
    ("XR", 2018, 5.94, 2.98, 6.84),
    ("X10", 2017, 5.65, 2.79, 6.13),
    ("8Plus", 2017, 6.23, 3.07, 7.12)
])
names = ['Model', 'Year', 'Height', 'Width', 'Weight']
iphones_df = spark.createDataFrame(iphones_RDD, schema=names)

type(iphones_df)
pyspark.sql.dataframe.DataFrame
PySpark로 배우는 빅데이터 기초

CSV/JSON/TXT 읽기로 DataFrame 생성

df_csv = spark.read.csv("people.csv", header=True, inferSchema=True)
df_json = spark.read.json("people.json")
df_txt = spark.read.txt("people.txt")
  • 파일 경로와 두 가지 선택 매개변수

  • 두 가지 선택 매개변수

    • header=True, inferSchema=True
PySpark로 배우는 빅데이터 기초

연습해 봅시다

PySpark로 배우는 빅데이터 기초

Preparing Video For Download...