PySpark UDF native Python 라이브러리와 Spark을 연동 UDF는 독립적인 프로세스로 실행 데이터가 Python과 Java간에 전달됨 PySpark UDF vs Pandas UDF Existing UDF Pandas UDF Function on R...
Parquet
Parquet 파일 구조 Header header, 하나이상의 블럭, footer로 구성된다. header,footer에는 4 byte magic number를 포함하고 있다. 이는 파일이 parquet format임을 알려준다. 메타데이터는 footer에 저장되어있다. Data Block Page에는 비슷한 값들을 포함하므로 압축하기가 ...
CSR vs SSR
CSR : Client Side Rendering SPA(Single Page Application) 최초 한번 페이지 전체를 로딩한뒤, 데이터만 변경하여 사용할 수 있는 애플리케이션 장점 사용자 경험 개선 서버 트래픽 감소 단점 검색엔진 크롤러가 데이터 수집 어려움 SSR : Server Side Rendering ...
SOLID
SOLID Principle SRP(Single Responsibility Principle) : 단일 책임 원칙, 클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 한다. OCP(Open-Closed Principle) : 개방-폐쇄 원칙, 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. LS...
DataFrame
DataFrame named column으로 정리된 분산 데이터 컬렉션, 모든 언어에 대한 Unified transformation interface로 transformed 된후 JVM으로 전달된다. 내부 구현 내부적으로는 RDD와 동일하다. row-columnar format으로 저장된다. 각각의 파티션에 각각의 컬럼은 m...
Shuffle
Spark Architecture: Shuffle Shuffle 이란 무엇일까? 하루에 발생한 전화량을 계산한다고 가정해보자. 이 경우 “day”를 key로 설정할것이고, 각각의 value는 1로 설정할것이다. 그리고 각각의 key에 대해서 value들을 합할것이다. 하지만 데이터를 클러스터에 저장할때, 같은 key에 대한 value들을 어떻게 ...
Cookie
HTTP cookie 웹사이트를 브라우징 하면서 사용자의 컴퓨터에 저장되는 작은 데이터. web cooke, Internet cookie, browser cookie, or cookie 라고 부른다. 쿠키는 웹사이트가 사용자의 활동정보(특정 버튼 클릭, 로그인, 이전에 방문한 사이트 정보, online store에서 쇼핑 카트 정보)를...
Transformation,Action
Transformation Operation 1. Transformation RDD를 인풋으로 받아서 한개이상의 RDD를 생산하는 함수 lazy evaluation 이고 action이 실행될때 실행된다. 두가지 기본타입은 map(),filter(),reduceByKey()등의 계산을 적용해서 새로운 RDD를 생산한다. ...
Log Compaction
Log Compaction Kafka는 시간,크기에 따라서 예전 로그들을 삭제할수 있다. 카프카는 또한 record key에 대한 log compaction도 지원한다.Log compaction 이란 레코드의 최근 버전만 유지하고 이전 버전은 삭제하는 것을 말한다. 구조 log는 head와 tail을 가지고 있다. compacted log의 he...
함수형 프로그래밍의 정의와 장단점
함수형 프로그래밍 어떻게 문제를 해결할지 보다 무엇을 해결할지에 초점을 맞춘 declarative type of programming이다. Clojure, Common Lisp, Erlang, Haskell, Scala가 유명한 functional programming language이다. 프로그래밍 패러다임은 lambda calculus에 기반한다...