본문 바로가기

TIL

(97)
[240319] 스파크(spark): 배경 및 기본 구조, 기능 [spark를 이용한 빅데이터 분석 by 안창배 튜터] [1] 스파크(spark): 컴퓨터와 데이터, 메모리, 클라우드 [2] 스파크(spark): 병렬/분산처리, 샘플링, 분할, Dask, 자동화 1. Spark란? 1) 스파크 등장 배경 - 과거엔 대규모 연산 및 데이터 처리를 프로세서 성능 향상에 맡겼으나, 물리적 방열 등 단일 CPU 기능 개선에는 한계가 있었음 - 하여, 모든 코어가 같은 속도로 동작하는 병렬 CPU 코어를 더 많이 추가하는 방향으로 발전 선회 - 데이터 수집 비용이 저렴해져 데이터 클러스터에서 처리해야 할 만큼 거대해짐 2) 스파크의 역사 - 요약: 스파크는 많은 변화를 겪어 왔으며, 최소 2022년 이후 자료를 살펴보는 것을 추천 - UC 버클리 대학교에서 2009년 스파크 ..
[240319] 파이썬: 코드카타 44 & SQL: 코드카타 156~157 [파이썬 코드카타] 최소직사각형 https://school.programmers.co.kr/learn/courses/30/lessons/86491 1) 어떤 문제가 있었나 다양한 크기인 모든 명함을 수납할 수 있는 가장 작은 지갑 크기를 반환하는 문제 2) 내가 시도해본 건 무엇인가 ① 가로(w)와 세로(h) 중 길이가 긴 것을 기준으로 값을 리스트에 넣고, ② 길이가 짧은 것을 기준으로 또 다른 리스트에 값을 넣은 뒤, ③ 각 리스트에서 최대값을 뽑아서 곱해줌 3) 어떻게 해결했나 def solution(sizes): w_list = [] h_list = [] for w, h in sizes: if w >= h: w_list.append(w) h_list.append(h) else: w_list.app..
[240318] 스파크(spark): 병렬/분산처리, 샘플링, 분할, Dask, 자동화 [spark를 이용한 빅데이터 분석 by 안창배 튜터] [1] 스파크(spark): 컴퓨터와 데이터, 메모리, 클라우드 1. 병렬 처리 1) 병렬 처리란? - 여러 개의 코어에서 동시 다발적으로 일을 나누어서 수행하는 것이 병렬처리 - 주로 단일 컴퓨터(머신) 내의 여러 코어나 프로세서를 사용하여 작업을 동시에 수행 - 파이썬은 기본적으로 1개의 코어를 사용하나 특정 명령어 사용 시 여러 개 코어 사용 가능 └ 파이썬에서는 Multiprocessing이나 joblib이 흔히 사용 └ sklearn의 njobs가 코어 개수를 제어하는 기능 2) 분산 처리 - 네트워크를 통해 연결된 여러 대의 컴퓨터(노드)가 각각의 작업을 수행하는 것 - Spark를 포함해 Ray, Dask 등의 라이브러리 사용 가능 🖥️..
[240318] 파이썬: 코드카타 43 & SQL: 코드카타 149~155 [파이썬 코드카타] 크기가 작은 부분 문자열 https://school.programmers.co.kr/learn/courses/30/lessons/147355 1) 어떤 문제가 있었나 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 부분문자열이 p보다 작거나 같은 수가 나오는 횟수를 반환 t = "3141592" # 314, 141, 415, 159, 592 p = "271" result = 2 #141, 159 2) 내가 시도해본 건 무엇인가 for 문으로 t 값을 p 길이만큼 순서대로 꺼낼 수 있도록 range +len을 결합한 함수를 사용 for 문 뒤에 print 값을 넣어서 제대로 작동하는지 체크한 뒤 if 문 적용하요 최종 함수 적용 3) 어떻게 해..
[240315] 파이썬: 코드카타 42 & SQL: 코드카타 146~148 [파이썬 코드카타] 삼총사 https://school.programmers.co.kr/learn/courses/30/lessons/131705 1) 어떤 문제가 있었나 - 각 정수 번호를 가지고 있는 학생 3명의 번호를 더 했을 때 0이 되면 삼총사 - 각 정수 배열에서 삼총사를 만들 수 있는 경우의 수를 반환하는 문제 number = [-2, 3, 0, 2, -5] result = 2 2) 내가 시도해본 건 무엇인가 구글링을 통해서 경우의 수를 뽑아주는 라이브러리 itertools의 존재를 확인 프로그래머스에서 라이브러리 활용이 가능한지 몰라서 우선 함수를 작성해서 시도해봄 3) 어떻게 해결했나 itertools 라이브러리 활용해서 간단히 해결 def solution(number): from itert..
[240315] 스파크(spark): 컴퓨터와 데이터, 메모리, 클라우드 [spark를 이용한 빅데이터 분석 by 안창배 튜터] 1. 왜 스파크일까? - 스파크 Apache Spark 란? [상세 정의] └ SQL, 스트리밍, 머신러닝 및 그래프 처리를 위한 기본 제공 모듈이 있는 대규모 데이터 처리용 통합 분석 엔진 └ 클라우드의 Apache Hadoop, Apache Mesos, Kubernetes에서 자체적으로 혹은 다양한 데이터 소스에 대해 실행 가능 └ 쉽게 말해, 대용량 데이터를 다루는 것에 특화된 프레임 워크 └ (cf) Apache는 오픈소스를 제공하는 재단인데, 스파크도 관리하고 있음 - 스파크를 배우는 이유 └ 기술적이고, 난이도가 높고, 실제로 쓰리라는 보장은 없으나 · Pyspark: Python을 기반으로 하여 별도의 언어 공부가 필요 없음 · 대용량 ..
[240314] 파이썬: 코드카타 41 [파이썬 코드카타] 이상한 문자 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12930 1) 어떤 문제가 있었나 각 문자열에서 공백으로 나눠진 단어 기준으로 짝수번째는 대문자, 홀수번째는 소문자인 문자열을 반환 s = "try hello world" return = "TrY HeLlO WoRlD" 2) 내가 시도해본 건 무엇인가 - 주어진 문자열을 split()로 잘라서 list에 넣고, for문으로 하나씩 꺼내서 짝수자리수는 upper, 홀수는 lower 되도록 적용 - 정확성 31.3%로 실패 def solution(s): s = "try hello world" answer = "" s_list = s.split() for i in s..
[240313] 파이썬: 코드카타 40 [파이썬 코드카타] 3진법 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/68935 1) 어떤 문제가 있었나: N진법 개념을 몰라서 공부해봄 - 문제: 자연수 n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 반환 ① N진법의 의미 - 진법이란? 수를 셀 때, 자릿수가 올라가는 단위를 기준으로 하는 셈법의 총칭. 수를 표기하는 기수법 중 하나 - 표기에 사용되는 수의 개수에 따라 N진법으로 이름이 붙음 └ 일반적으로 사용하는 0 1 2 3 4 5 6 7 8 9 로 이뤄진, 10개 문자를 이뤄진 표기법이 바로 10진법 (ex 34,205 등) └ 컴퓨터 공항에서 주로 쓰이는 2진법에서는 숫자 표기에 0, 1만 사용 -..