[Spark] RDD 리뷰

오현우·2022년 9월 1일
0

spark

목록 보기
1/2

Intro Spark API RDD!

spark 는 기본적으로 분산 컴퓨팅을 위한 오픈 소스 프레임워크이다.
따라서 초기 스파크는 많은 컴퓨터에 분산이 가능하게 할 수 있는 RDD를 사용했다.
RDD: resilient distributed dataset

위의 정의에서 유추할 수 있듯이 회복가능하게 분산처리된 데이터 셋이다.
분할된 데이터들은 클러스터 노드에 분산 저장된 형태로 존재한다.

Before We Dive in...

RDD는 이미 spark가 버전업을 하면서 더나은 퍼포먼스를 위해 dataset, dataframe이라는 api로 대체되었다. 하지만 위의 dataset, dataframe api들은 결국 rdd 위에서 동작하는 고수준 api 이기 때문에 rdd를 알아두면 좋다고 생각한다.

Let deep dive into RDD!

우리는 scala로 spark를 deep dive할 예정이다.
RDD를 작성하기 위해서는 첫번째로 해야할 일은 sparkContext를 작성하는 것이다.
sparkContext는 RDD에 관하여 많은 일(각 노드에 데이터 분배, 각 노드별로 데이터 불러와서 하나의 데이터를 다시 복원하기 등등)들을 대신해주며 때문에 우리는 어떻게 데이터를 다룰지만 생각하면 된다.

Small example

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf

// Make spark context
val sc = new SparkContext("local[*]", "appName")
// or like this val conf = new SparkConf().setAppName(appName).setMaster(master)

// Make some list
val numList: List[Int] = List(1, 2, 3, 4)
// make rdd obeject
val rdd = sc.parallelize(numList)
val squares = rdd.map(x => x*x)

// squares will return 1, 4, 9, 16

RDD에 대한 간단한 리뷰를 마치며

아래의 레퍼런스에서 다양하게 RDD를 사용하는 방법에 나와있다.
해당 내용들을 모두 다루기는 힘들지만 위와 같이 한번 시작하였다면 뒤의 내용들도 따라가기 쉬울 것이라고 생각한다.

references: https://spark.apache.org/docs/latest/rdd-programming-guide.html

profile
핵심은 같게, 생각은 다르게

0개의 댓글