전체 글

데이터 엔지니어링, 자동화에 관심을 갖고 공부 중입니다.
[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 78일 차] Spark, SparkML 실습 (3)

Spark PartitionSalting을 통한 Data Skew 처리AQE가 등장하기 전 Data Skew 처리 방식 중 하나인 Salting에 대해 알아보자.Partition 관련 환경 변수 (3.3.1)spark.sql.shuffle.partitions클러스터 차원과 처리 데이터의 크기를 고려하여 Job마다 바꿔 설정큰 데이터를 처리한다면, 클러스터 전체 코어의 수로 설정AQE를 사용하는 관점에서는 조금 더 크게 설정하는 것이 좋음 (coalescing)SaltingSkew Partition을 처리하기 위한 테크닉AQE의 등장으로 인해 많이 쓰이지 않지만, AQE만으로 이슈가 사라지지 않는다면 필요할 수 있음랜덤 필드를 만들고, 그 기준으로 Partition을 새로 만들어 처리Aggregation ..

[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 77일 차] Spark, SparkML 실습 (2)

Spark Shuffling 최적화Repartition and CoalesceRepartition을 하는 이유전체적으로 파티션의 수를 늘려 병렬성 증대굉장히 큰 Partition이나 Skew Partition의 크기를 조절파티션을 분석 패턴에 맞게 재분배 (Write once, read many)어떤 DataFrame을 특정 컬럼을 기준으로 그루핑 하거나 필터링을 자주 하는 경우미리 그 컬럼을 기준으로 저장해 두었다면, 그것이 BucketingRepartition 방식두 가지 방식 존재repartition (Hash)repartitionByRange (value 기준)주의할 점Shuffling 발생 : Repartition이 별 이유 없이 사용되면 오히려 시간과 비용 증가Column이 사용되면 균등한 파..

[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 76일 차] Spark, SparkML 실습 (1)

Spark 기타 기능과 메모리 관리Spark 기타 기능Broadcast Variable룩업 테이블 등을 브로드캐스팅하여 셔플링을 막는 방식으로 사용브로드캐스트 조인에서 사용되는 것과 동일한 테크닉대부분 룩업 테이블 (혹은 디멘션 테이블)을 Executor로 전송하는 데 사용spark.sparkContext.broadcast 사용ClosureSerialization이 Task 단위로 일어남UDF 안에서 파이썬 데이터 구조를 사용하는 경우BroadcastSerialization이 Worker  Node 단위로 일어남UDF 안에서 브로드캐스트 된 데이터 구조를 사용하는 경우Broadcast 데이터 셋의 특징Worker Node로 공유되는 변경 불가 데이터 (Immutable)Worker Node 별로 한 번 ..

CS/이것이 취업을 위한 코딩 테스트다 with 파이썬

Chapter 7. 이진 탐색

이진 탐색이진 탐색을 사용하면 리스트 내에서 데이터를 매우 빠르게 탐색할 수 있다. 이진 탐색에 대해 알아보기 전에 가장 기본 탐색 방법인 순차 탐색에 대해 먼저 이해할 필요가 있다.순차 탐색 : 리스트 내의 특정 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법데이터의 정렬 여부와 관계없이 가장 앞에 있는 원소부터 하나씩 확인데이터의 개수가 N개일 때, 최대 N번의 비교 연산이 필요하므로 시간 복잡도는 O(N)개념 정리이진 탐색배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘필요한 변수 : 시작점, 끝점, 중간점찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교단계마다 2로 나누는 것과 동일하므로 시간 복잡도는 O(logN)예시 : 값이 4인 카드 탐색시작점..

기억에 남는 블로그 닉네임
얕게, 깊게