Posts
olaf.kido
Cancel

효율적인 트랜스포메이션 (하이 퍼포먼스 스파크 chap5)

좁은 트랜스포메이션 vs. 넓은 트랜스포메이션 좁은 종속성의 트랜스포메이션 부모 RDD의 각 파티션이 자식 RDD의 최대 하나의 파티션에 의해 사용되는 것 즉, 부모 파티션의 자식은 오직 하나 값을 모르고도 할 수 있는 것들 변환하거나: map, filter, mapPartition, … 합하거나: coale...

조인(SQL과 코어 스파크) (하이 퍼포먼스 스파크 chap4)

코어 스파크 조인 일반적인 조인은 로컬에서 작업을 수행할 수 있도록 각 RDD에 연관되는 키가 같은 파티션에 있기를 요구하므로 비용이 비싸다. 조인의 비용은 키의 개수와 레코드가 올바른 파티션에 위치하기 위해 움직여야 하는 규모에 비례해서 커진다. 조인 형태 선택하기 키 공간(개수)를 줄이기 위해 distinct나 combineByK...

information entropy

Information Entropy (Shannon Entropy) 사건 X의 불확실성 또는 정보량의 기대 값 사건 X는 K가지 경우의 수를 가진 이산 변수. 예를들어 6가지 경우가 나오는 주사위 던지기 모든 사건의 기대값 = Σ 확률변수 * 확률 주사위 던지기의 기대값 = 11/6 + 21/6 + 31/6 + 41/6 + 51/6 + ...

java off heap

Off heap memory allocation sun.misc.Unsafe: JVM internal API로서 생성자 호출없이 Object를 생성한다거나 하는 다양한 기능의 API가 있으나 대표적으로 Non-JVM 영역(off-heap, direct memory)에 메모리를 할당하여 사용할 수 있음 ...

spark rdd의 coalesce와 partition의 차이

coalesce full shuffle을 하지 않고 파티션의 개수를 조절한다. transform 연산 후에 결과를 1개의 파일로 저장하기 위해 coalesce(1)를 하면, transform을 1개의 executor로 실행한다. 왜 그런지 추측해보면… coalesce 작업은 full shuffle을 하지 않으므로...

DataFrame, Dataset과 스파크 SQL (하이 퍼포먼스 스파크 chap3)

DataFrame and Dataset History DataFrame since Spark 1.3 Dataset since Spark 1.6 (preview) Unified since Spark 2.0 (type DataFrame = Dataset[Row]) Scala Type Alias: https://alvinal...

CDH5에서 Spark 2.x 돌리기

사전 준비 spark submit 목적의 gateway (개발 PC)에 설치를 진행 hadoop client가 이미 설치되어 hadoop cluster와 잘 연동되고 있다고 가정 $HADOOP_HOME $HADOOP_CONF_DIR: hadoop cluster의 폴더 구조와 동일하게 $HIVE_HOME $HIVE_CONF_DIR: ha...

spark tungsten

spark tungsten Tungsten is the codename for the umbrella project to make changes to Apache Spark’s execution engine that focuses on substantially improving the efficiency of memory and CPU for Spar...

spark dataframe을 csv로 export하기

spark dataframe을 csv로 export하기 jupyter, sparkmagic kernel 기준 %%configure -f {"jars": ["/user/olaf.kido/spark-csv_2.10-1.5.0.jar", "/user/olaf.kido/commons-csv-1.6.jar"]} # Spark 1.6이라면 sqlConte...

jupyter notebook tips

SparkMagic spark add jars %%configure -f {"jars": ["/user/olaf.kido/spark-csv_2.10-1.5.0.jar", "/user/olaf.kido/commons-csv-1.6.jar"]} 첫번째 cell에서 %%configure 명령을 보내면 새로운 Spark Session이 시작됨. jar 파일...