본문 바로가기

IT105

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.
Spark - Spark SQL 이전에도 알아보았지만 구조화된 데이터는 비구조화, 반구조화 데이터보다 확실히 데이터를 분석, 처리하기에 좀 더 효율적이다. 때문에 RDB와 같은 관계형 데이터베이스를 많이 선택하는 편이다. 그렇다면 Spark는?? 일반적인 방법은 Spark pipeline에서 직접 데이터베이스에 Connection을 맺고 사용하는 것이다. 그러나 매우 비효율적이다. (데이터베이스 Connection 관리를 추가적으로 해야하는 등 배보다 배꼽이 커질수도..)Spark Stack근데 다행하게(?) Spark에서는 Spark Stack 중 Spark SQL을 지원한다. Spark에서 SQL을 도입한 이유는 여러가지가 있겠지만 SQL를 컴포넌트의 하나로 구성하면서 사용자가 얻을 수 있는 장점은 아래와 같다.1) RDB 와 같은.. 2020. 2. 8.
Spark - Structured Data 위의 그림에서 언급하고 있는 스펙트럼을 보면, Structured, Semi-Structured, Unstructured를 차이를 대략 알 수 있다. 한국말로 풀이해보면 구조화, 반구조화, 비구조화로 구분할 수 있는데 왜 갑자기 이와 같은 것을 언급하는 것일까? 이제까지 다룬 RDD는 구조화된 데이터가 아니다. 구조화된 데이터라면 작업이 될 때, 데이터 구조가 어떤 식으로 변하는지 혹은 데이터가 어떻게 변경되었는지 알 수 있어야하는데 이미 알다시피 RDD의 작업은 결과를 알기 전까지 내부를 알 수가 없다. 물론, RDD[클래스 이름]과 같이 사용하면서 대략적으로 데이터 구조는 파악 할 수 있지만, 역시나 내부 데이터를 알 수가 없다.(일반 자료형을 사용하는 RDD는 Regular RDD, 클래스를 사용하.. 2020. 2. 6.