본문 바로가기
728x90

RDD6

[Spark] 프로그래밍 언어 별 Spark 성능, 속도 차이 (UDF와 직렬화) Spark에서는 지원할 수 있는 언어가 5(7)가지가 있습니다.ScalaPythonJavaRSQLGO (4.x version 부터 지원)Rush(4.x version 부터 지원)관련하여 속도 차이는 어떤지 비교하고 왜 속도 차이가 나는지 정리해보겠습니다.1. Catalyst Optimizer와 Tungsten 엔진 사용Spark는 Catalyst Optimizer라는 내부 최적화 엔진을 사용하여, DataFrame, Dataset, 그리고 Spark SQL 쿼리를 모두 동일한 논리적 실행 계획(Logical Plan)으로 변환 Catalyst Optimizer는 쿼리 최적화, 필터 푸시다운, 프로젝트 제거, 조인 최적화 등을 수행최적화된 논리적 계획은물리적 실행 계획(Physical Plan)으로 변환되.. 2025. 1. 10.
[Spark] issue 정리, java.lang.ExceptionInInitializerError 와 java.lang.IllegalStateException: SparkSession should only be created and accessed on the driver scala언어로 spark object를 만들고 jar로 빌드하여 EMR에 제출할 때 나온 에러를 정리하겠습니다.spark관련 정리는 오랜만이네요.1. 원인 파악분명 다른 object와 다른점 없고, jar파일 위치 이름, class 이름까지도 경로에 명시를 잘해 줬는데도 위 제목과 같은 에러가나와서 계속 헤메고 있던 때에 리서칭을 통해서 원인을 파악할 수 있었습니다.scala object에서 다음과 같은 에러가 나온 경우, 주로 Apache Spark에서 SparkSession이 드라이버 노드가 아닌 워커 노드에서 생성되거나 접근될 때 발생된다고 합니다.→ 이는 SparkSession이 조정 목적으로 드라이버에서 관리되어야 하는 싱글톤 객체이기 때문  java.lang.ExceptionInInitial.. 2024. 6. 22.
[Spark] cache() vs persist() 차이점 정리 (feat. storage level) cache() test_df.cache() # test_df를 캐싱 test_df.storageLevel # org.apache.spark.storage.StorageLevel = StorageLevel(disk, memory, deserialized, 1 replicas) persist() import org.apache.spark.storage.StorageLevel # storage 명시를 위한 library import test2_df.persist(StorageLevel.MEMORY_AND_DISK) # test2_df에 persist를 하면서 storage lvl을 명시 test2_df.storageLevel # org.apache.spark.storage.StorageLevel = Stora.. 2023. 9. 19.
[Spark] RDD action & transformation + Dataframe의 연산(operation) 분류 Spark는 분산 환경에서 데이터를 다루는 데 필요한 지연 처리방식(lazy evaluation)의 transformation과 즉시 실행 방식의 action을 제공그리고 DataFrame과 Dataset의 transformation, action과 동일한 방식으로 동작한다.1. RDD transformationSpark Transformation는 기존의 RDD에서 새로운 RDD를 생성하는 functionLazy 처리방식(lazy evaluation)이라서 action을 호출할 때 transformation이 실제로 실행 → transformation을 수행할 때 query plan만 만들고 실제로 메모리에 올리지는 않는다. action이 호출될 때 transformation을 메모리에 올려서 수행하고.. 2021. 12. 29.
[Spark] RDD vs DataFrame 큰 차이점, Dataframe을 사용해야 되는 이유, RDD를 사용해야 하는 경우는? RDD, Dataframe 다루기 RDD란? 정의 및 특징, dataframe과의 차이는?RDD(Resilient Distributed Dataset)특징설명ResilientRDD lineage 그래프를 통한 fault-tolerant가 빠졌거나,node의 실패로 인한 손상된 파티션을 다시 실행시킨다.Distributed클러스터의 여러 노드에 데이터가 분산되어 저장Dataset원천 데이터값 혹은 값의 값들로 이루어진 파티션된 collection 데이터(튜플 혹은 다른 레코드로써 사용될 수 있는 데이터 객체들)RDD 특징특징설명In-MemoryRDD속의 데이터는 가능한 많이, 오래 메모리에 저장되어 있다.불가변성(읽기 전용)한번 생성되고 나면 변하지 않는다. transformation 연산을 통해 새로운 RDD로써 만들 수 있다.lazy .. 2021. 12. 16.
[BigData] Spark( RDD vs DataFrame vs Dataset) + SparkSQL 출처 : A comparison between RDD, DataFrame and Dataset in Spark from a developer’s point of viewRDDResilient: 분산되어 있는 데이터에 에러가 생겨도 복구할 수 있는 능력Distributed: 클러스터의 여러 노드에 데이터를 분산해서 저장Dataset: 분산된 데이터의 모음SparkContext를 통해 만들어지며 보통 sc=spark.SparkContext를 통해 객체를 생성한다SparkSession을 import해도 SparkContext가 포함되어 있는 내용이라 SparkSession만 import해도 사용가능하긴 하다.ex)spark = SparkSession.builder.appName("이름").master("loc.. 2021. 2. 15.
728x90