본문 바로가기

IT/Spark12

Spark - RDD vs Dataframes vs Datasets RDD와 Dataframes, Datasets를 비교하는 글이 있어서 보려고 한다.중간중간 의역 및 생략이 있을 수 있다. 때문에 보다 자세한 글은 아래 원문을 참조https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html 우리는 언제, 왜 RDD, Dataframes, Datasets를 사용해야 할까? Resilient Distributed Dataset (RDD)RDD는 Spark 등장 이래로 주로 사용된 API 이다. Spark Core에서는 RDD는 변경할 수 없는(Immutable) 데이터의 집합으로 클러스터 내의 여러 노드에 분산되어 있다.(Transformati.. 2020. 2. 15.
Spark - Datasets Datasets에 대해 알아보기전에 어떤 점 때문에 Datasets가 필요한지에 대해 알아보자.case class Listing(street: String, zip: Int, price: Int) val listingsDF = List(Listing("A", 0, 100), Listing("B", 1, 101), Listing("C", 2, 200)).toDF() val averagePricesDF = listingsDF .groupBy($"zip") .avg("price") .show()+---+----------+|zip|avg(price)|+---+----------+| 1| 101.0|| 2| 200.0|| 0| 100.0|+---+----------+ 위의 코드를 실행시키면 "zip"으로 그룹화.. 2020. 2. 12.
Spark - Dataframe API (Part 2) 이전과 다른 예시를 가지고 Dataframe을 다뤄보려고 한다.https://www.kaggle.com/timoboz/superbowl-history-1967-2020/data 먼저 데이터를 살펴보면,Date,SB,Winner,Winner Pts,Loser,Loser Pts,MVP,Stadium,City,StateFeb 2 2020,LIV (54),Kansas City Chiefs,31,San Francisco 49ers,20,Patrick Mahomes,Hard Rock Stadium,Miami Gardens,FloridaFeb 3 2019,LIII (53),New England Patriots,13,Los Angeles Rams,3,Julian Edelman,Mercedes-Benz Stadium,A.. 2020. 2. 11.
Spark - Dataframe API (Part 1) 이전에도 잠깐 알아보았지만, RDD 메소드에 비해 어떤 부분이 더 좋은지 살펴보면1) RDD 메소드는 functional API에 비해 Dataframe은 declarative API 이다. 즉, SQL*과 같이 사용하기 편하다. *SQL 또한 declarative API 이다.2) 자동으로 최적화가 된다. (Dataframe을 잘 사용 할 수 있도록 지속해서 업데이트가 된다.)3) 타입이 없다*.* Dataframe이 타입이 완전이 없는 것이 아니라, Dataframe의 내부 row의 타입이 존재하지 않는다.(Spark SQL에서 지원하는 데이터 타입 => https://spark.apache.org/docs/latest/sql-reference.html) 간단한 예시를 바탕으로 API를 살펴보자.(h.. 2020. 2. 10.