빅데이터 처리/Spark 7

Spark SQL - Join 방식

Spark SQL - Join 방식 BroadcastHashJoin / BroadcastNestedJoinjoin을 하는 대상에 전체데이터를 Broadcast해서 사용하는 join 방식`spark.sql.autoBroadcastJoinThreshold` 설정으로 Threshold를 조절할수 있다.Data가 너무 크게 되면 OOM 에러가 발생이 될수가 있다.broadcast를 이용하여 hint를 줄수가 있다.작은 데이터와 큰 데이터를 join을 할때 작은 데이터를 broadcast를 이용하여 성능을 높일수가 있다. (shuffle을 줄이는 효과) SortMergeJoinjoin을 하는 2개의 데이터셋에 대해 먼저 sort를 진행을 한뒤 join을 하는 방식`spark.sql.join.preferSortMe..

Spark 간단하게 하나의 파일로 Write하는 법

Spark 간단하게 하나의 파일로 Write하는 법데이터를 Partition 별로 나눠서 데이터를 처리를 하기 때문에 Write 여러개의 파일이 생긴다.하나의 파일만 생기게 할려면 Partition을 강제로 1개로 설정을 하면 하나의 파일로 Write가 된다.주의하나의 파티션으로 몰리게 때문에 Memory Overflow가 발생이 될수있다.용량이 큰 경우에는 파일을 합치는 task를 생성해서 따로 처리를 한다. Exampledf .repartition(1) .write() .json(.... path)...

Spark AWS S3 접근시 400 에러 처리 방법

Spark AWS S3 접근시 400 에러 처리 방법aws api는 API Signagure 로 인해 버전이 존재한다.hadoop-aws에서의 S3 API를 V2 버전을 사용하는데 Seoul 리전은 V4 버전만 지원하기 때문에 생기는 문제점 설정sc.sparkContext().hadoopConfiguration().set('fs.s3a.impl', 'org.apache.hadoop.fs.s3a.S3AFileSystem')sc.sparkContext().hadoopConfiguration().set('com.amazonaws.services.s3.enableV4', 'true')sc.sparkContext().hadoopConfiguration().set('fs.s3a.access.key', 'YOUR_A..

Spark SQL, DataFrames, Datasets

Spark SQL, DataFrames, DatasetsSpark 모듈중에 하나구조화된 데이터 처리를 위한 모듈 Starting Pointimport org.apache.spark.sql.SparkSession; SparkSession spark = SparkSession .builder() .appName("Java Spark SQL basic example") .config("spark.some.config.option", "some-value") .getOrCreate(); hive 기능도 제공을 한다 (spark 2.0 builtin support) Creating DataFrames(Dataset)RDD에서 DataFrames을 만들수도 있다.Hive TableSpark Data SourcePa..

Spark RDD

Table of ContentTable of ContentRDD (Resilient Distributed Datasets)HDFSReadWriteMapReduceMapReduceRDD (Resilient Distributed Datasets)특성TransformationLazy-ExecutionRDD 시작하기Spark Context 시작하기파라미터 설명Spark Shell로 이용하는 방법Collection 객체를 이용하여 RDD 생성하는 방법파일로 부터 RDD 생성하는 방법읽어 올수 있는 데이터 저장소RDD OperationBasicSpark에 함수로 전달로하기클로저(Closures) 이해클로저란?ExampleLocal vs Cluster 모드RDD 값 출력Key-Value Pair OperationTr..