Python(61)
-
[BOJ] #10986번: 나머지 합
문제 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 10^6, 2 ≤ M ≤ 10^3) 둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 109) 출력 첫째 줄에 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력한다. 예제 입력 1 5 3 1 2 3 1 2 예제 출력 1 7 풀이 단순 부분합을 이용해서는 풀 수 없다. N이 10^6까지 주어질 수 있기 때문에 효율의 효율의 효율을 추구해야..
2022.05.21 -
[SparkML] MLlib 개념 및 실습 코드
MLlib Machine Learning Library 스파크의 컴포넌트 중 하나로, 머신러닝 파이프라인 개발을 쉽게 하기 위해 개발되었다. MLlib에는 다시 알고리즘(Classification 등) + 파이프라인(Training, Evaluation 등) + FE + Utils(Statistics 등)의 여러 컴포넌트가 있다. MLlib은 DataFrame 위에서 동작하며, MLlib API를 Spark ML이라고 부른다. 이번 포스팅에선 MLlib의 활용을 알고리즘, 파이프라인, FE, Utils에 걸쳐서 차근차근 살펴보도록 하겠다. MLlib 포스팅에서 사용할 데이터는 이전 포스팅에서 다뤘던 '택시 데이터'이다. https://mengu.tistory.com/50?category=932924 [S..
2022.05.20 -
[Analytics] 미국 택시로 생존하는 방법 (1) feat. TLC
당신은 NEWYORK에서 택시 기사로 일하고 있다. 택시는 Yellow Taxi이다. 택시 기사로 생존하기 위해선 다음과 같은 노력이 필요하다. 1) 근무 시간 동안, 손님을 최대한 많이 태울 것 (손님) 2) 많은 요금 + 풍부한 팁 (요금) 3) 현금 결제는 소득에 포함시키지 않고 슬쩍하기 (세금 절약) 두 가지는 단순히 노력만으론 이뤄지지 않는다. 빅데이터를 이용해 손님이 많은 장소와 시간을 특정하고, 미리 대기하고 있어야 한다. 또한 손님이 특정 장소를 요구해도, 그곳이 데이터 상 손님이 많은 장소가 아니라면 용기 있게 Pass 할 필요도 있다. 그렇다면 지금부터 데이터를 살펴보며 전략을 구축해보자. [Data] 데이터는 SparkSQL 포스팅에서 전처리한 Yellow Taxi 데이터(cleane..
2022.05.12 -
[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