분류 전체보기 194

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..

AOM (Adaptive Object Model)

AOM (Adaptive Object Model)Active Object Model, Dynamic Object Model 이라고도 불림, 동적인 객체 모델고객별로 다른 요구사항을 수용할 수 있는 설정 가능유연성이 높고 실시간으로 적용이 가능한 애플리케이션을 개발할수 있는 아키텍처 스타일기본 구조와 패턴AOM 아키텍처의 기본적으로 구조 (Class Diagram)존재하지 않는 객체를 관리할때 EntityType에 새로운 객체가 등록이 되고, 해당 객체에 대한 속성도 새로운 타입으로 등록이 된다.특별한 Rule이 필요한 경우에는 MetaLevel 안에서 Rule 클래스를 이용하여 필요한 행위를 하게 된다.Type Object 패턴인스턴스들를 해당 인스턴스들의 클래스로부터 분리시킴으로써 그 클래스들이 하나의..

Programing 2018.12.29