본문 바로가기

소프트웨어-이야기/데이터 저장소 + 시각화

[스파크]DataFrame

DataFrame

데이터 프레임이란 관계형 데이터베이스의 테이블과 R과 파이썬의 데이터 프레임과 같은 개념이다. (데이터 프레임은 2차원의 배열 구조로 구성되어있다.) 


DataFrame 특징

  • Spark SQL 옵티마이저로 데이터를 추출할 수 있고, optimization(최적화)를 할 수 있다.
  • 자바, 스칼라, R API 함수로 조작할 수 있다.


스파크에서 DataFrame 만들기

스파크에서는 구조화된 데이터 파일, HIVE의 테이블, 외부 데이터베이스, RDD의 배열로 데이터프레임을 만들 수 있다. 그리고 Spark SQL을 사용할 때, SQL으로 반환되는 값의 유형은 데이터프레임이다.

아래는 공식홈페이지에서 가져온 데이터프레임 만들기 스칼라 예시이다.

val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val df = sqlContext.read.json("examples/src/main/resources/people.json")

// Displays the content of the DataFrame to stdout
df.show()

sqlContext로 외부 데이터 소스를 읽어오면, 데이터 프레임 형태로 읽혀진다.


RDD VS DataFrame

  • RDD보다는 DataFrame 사용을 권장한다고 한다. 왜냐하면 query optimization[각주:1] 가 가능하기 때문이다. 참고


스파크 작업을 하면서 데이터 프레임의 개념과 RDD가 헷갈렸다. 그런데.. 이제 뭔지 좀 감이 온당..ㅋㅋ 


참고 페이지

https://databricks.com/blog/2015/02/17/introducing-dataframes-in-spark-for-large-scale-data-science.html


  1. 질의를 수행하는 데 가장 비용이 적게 드는 접근 경로를 선택하고 그 방법을 수행하는 과정 또는 동작 [본문으로]