분류 전체보기(145)
-
[SparkSQL] 택시 데이터 다운/전처리/분석 feat. TLC
이전 포스팅에서 공부한 SparkSQL 지식을 바탕으로, 실제 Taxi 데이터를 전처리해보자. * 전처리란? 이상치 제거, 그룹화 등 데이터 분석이 용이하도록 데이터를 변형하는 과정을 말한다. TLC Trip Record Data에서 먼저 데이터를 받아오자. TLC는 미국의 택시 운전 데이터를 모아놓은 아주 유용한 사이트다. [https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page] TLC Trip Record Data - TLC TLC Trip Record Data The yellow and green taxi trip records include fields capturing pick-up and drop-off dates/times, pick-..
2022.05.10 -
[SparkSQL] Catalyst, Tungsten 작동 원리
Spark Backend : Catalyst, Tungsten Spark는 쿼리를 돌리기 위해 위의 두 가지 엔진을 사용한다. Catalyst는 쿼리문을 최적화 시키는데 이용하고, Tungsten은 RDD level에서 용량을 최적화시킨다. Process를 보면 다음과 같다. Spark의 조직도는 다음과 같다. 조직도를 보면 알 수 있다시피 Catalyst는 SQL, DataFrame이 Structured Data를 다룰 수 있게 하는 필수 모듈이다. 그렇다면 Catalyst가 구체적으로 어떤 기능을 하는지 살펴보자. "본 포스팅은 패스트캠퍼스의 강의를 듣고, 정리한 자료임을 밝힙니다." Catalyst의 기능 Logical Plan -> Physical Plan Logical Plan이란? 수행하는 모..
2022.05.09 -
[SparkSQL] UDF 개념 및 코드
UDF User Define Function. 즉, 사용자 지정 함수를 말한다. 앞선 포스팅에서 데이터 프레임을 처리하는 여러 함수들을 보았다. SparkSQL에선 사용자가 직접 어떤 작업을 수행하는 함수를 명명하고, Spark에 등록하여 쓸 수 있다. 자세하게 알아보자. "본 포스팅은 패스트캠퍼스의 강의를 듣고, 정리한 자료임을 밝힙니다." Basic Setting import os import findspark findspark.init(os.environ.get("SPARK_HOME")) import pyspark from pyspark import SparkConf, SparkContext import pandas as pd import faulthandler faulthandler.enable(..
2022.05.08 -
[SparkSQL] DataFrame 다루기
DataFrame SparkSQL에서 다루는 Structured Data로 아주 주요 개념이다. 기본적으로 Lazy Execution, 분산, Immutable이란 RDD의 장점을 가짐과 동시에 구조화(Structured)되어 있어 자동 최적화까지 가능하다. CSV, JSON, Hive 등으로 읽거나 변환도 가능하다. 본격적으로 DataFrame을 다뤄보자. "본 포스팅은 패스트캠퍼스의 강의를 듣고, 정리한 자료임을 밝힙니다." Basic Setting import os import findspark findspark.init(os.environ.get("SPARK_HOME")) import pyspark from pyspark import SparkConf, SparkContext import pand..
2022.05.07 -
[Spark] SparkSQL 개념 및 코드
SparkSQL Structured Data를 다루기 위해 Spark에서도 SQL문을 쓸 수 있게 했다. 1. Structured Data와 Unstructured Data의 차이점은 무엇이고 2. 왜 RDD가 아닌 Structured Data를 써야 하며 3. Spark에서 SQL문을 어떻게 쓸 수 있을까? 포스팅을 읽어가며 질문을 해소해보자. "본 포스팅은 패스트캠퍼스의 강의를 듣고, 정리한 자료임을 밝힙니다." Structured Data vs Unstructured Data Unstructured Data : free form - 로그 파일 - 이미지 말 그대로 free form. 자유로운 형식의 데이터다. 이미지가 될 수도 있고, 하나의 스트링이 될 수 있다. 이런 데이터들을 정제하여 Struc..
2022.05.06 -
[Algorithm] 누적 합(Prefix sum) 알고리즘 개념 및 코드
누적 합 Prefix sum 이번 포스팅에선 누적 합 알고리즘을 살펴보겠다. 꽤 간단하지만 알고리즘이지만, 의외로 모르는 사람이 꽤 있다. Let's Go 다음과 같은 문제가 있다. n_list = [n for n in range(1, 100)] 50번째부터 - 80번째까지의 수를 더한 값을 리턴하라. 누적 합 알고리즘을 사용하지 않는다면? 단순히 리스트를 50번째부터 80번째까지 뽑아서 계산하는 방식을 가장 먼저 떠올릴 것이다. 코드로 표현하면 다음과 같다. sum(n_list[49:79]) 겉으론 문제가 없어 보이지만, 누적 합을 구하라는 요청이 많아지면 상황이 달라진다. import time n_list = [n for n in range(1, 10000)] start = time.time() fo..
2022.05.04