일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- sql
- text mining
- 터키 여행
- nlp
- 기초통계학
- postgresql
- hackerrank
- 프로그래머스
- sparkml
- Machine Learning
- 텍스트마이닝
- pyspark
- spark
- 파이썬
- mysql
- Deep Learning
- 머신러닝
- 딥러닝
- 튀르키예
- 튀르키예 여행
- 인과추론
- 데이터분석
- 회귀분석
- 스택/큐
- 시계열분석
- SparkSQL
- 통계분석
- python
- ADP실기
- 카파도키아
- Today
- Total
목록Spark & Hadoop/Spark (10)
YSY의 데이터분석 블로그
Bucketing과 File System Partitioning 둘다 Hive 메타스토어의 사용이 필요: saveAsTable 데이터 저장을 이후 반복처리에 최적화된 방법으로 하는 것 Bucketing DataFrame을 특정 ID를 기준으로 나눠서 테이블로 저장 먼저 Aggregation 함수나 Window 함수나 JOIN에서 많이 사용되는 컬럼이 있는지 확인 있다면 데이터를 이 특정 컬럼(들)을 기준으로 테이블로 저장 다음부터는 이를 로딩하여 사용함으로써 반복 처리시 시간 단축 DataFrameWriter의 bucketBy 함수 사용 Bucket의 수(첫번째 인자)와 기준 ID 지정(두번째 인자) 데이터의 특성을 잘 알고 있는 경우 사용 가능 (그 특성을 이용하여 최적화) CF) https://tow..
Transformations and Actions 예시코드 spark.read.option("header", True).csv(“test.csv”). \ where("gender 'F'"). \ select("name", "gender"). \ groupby("gender"). \ count(). \ show() Transformation 위 코드에서 WHERE, SELECT, GROUPBY, COUNT에 해당됨 Narrow Dependencies: 독립적인 Partition level 작업 select, filter, map, where, count 등등 Wide Dependencies: Shuffling이 필요한 작업 groupby, reduceby, partitionby, repartition 등등..
Schema Evolution 데이터가 쌓이고 난 이후에 변경되었을때(이전 스키마 버전으로 데이터가 쌓여있고 스키마가 변경되었을때) 어떻게 데이터를 저장하는지에 대한 메커니즘 용어 아래 같은 경우 schema마다 컬럼이 다른데 이를 parquet파일에서 어떻게 처리하는지 알아본다. 1. SparkSession 생성 from pyspark.sql import * from pyspark.sql.functions import * if __name__ == "__main__": spark = SparkSession \ .builder \ .appName("Spark Schema Evolution Demo") \ .master("local[3]") \ .getOrCreate() 데이터 호출 df1 = spark...
데이터 포멧 종류 데이터는 디스크에 파일로 저장 Unstructured와 Semi-structured만 Human Readable함 하려는 일에 맞게 최적화 필요 Unstructured Semi-structured (Type 정보가 없음) Structured (Type 정보가 있음) Text JSON PARQUET XML AVRO CSV ORC SequenceFile Avro : Apache에서 개발한 파일 포맷 Parquet : 트위터와 클라우데라에서 공동 개발한 Hbase에 최적화된 파일 포맷이다 ORC: Hive에서 개발한 Hive에 최적화된 파일 포맷 Spark의 주요 파일 타입 특징 CSV JSON PARQUET AVRO 컬럼 스토리지 X X O X 압축 가능 O O O O Splittable ..
이번 포스팅에서는 Spark를 Windows 10 로컬에 세팅하여 vscode에서 활용하는 방법을 알려드립니다. 자바 설치 cmd 창에 아래와 같이 출력이 있어야 하며 없으면 JAVA를 설치해 주어야함. > java -version https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 2. 자바 환경변수 세팅 운영체제..
Spark Session 생성 Spark 프로그램의 시작은 SparkSession을 만드는 것 프로그램마다 하나를 만들어 Spark Cluster와 통신: Singleton 객체 Spark 2.0에서 처음 소개됨 Spark Session을 통해 Spark이 제공해주는 다양한 기능을 사용 DataFrame, SQL, Streaming, ML API 모두 이 객체로 통신 config 메소드를 이용해 다양한 환경설정 가능 (단계별로 하나씩 설정도 가능) 단 RDD와 관련된 작업을 할때는 SparkSession 밑의 sparkContext 객체를 사용 Spark Session API Document : https://spark.apache.org/docs/3.1.1/api/python/reference/api/..
Spark 데이터 구조 RDD, DataFrame, Dataset (Immutable Distributed Data) RDD가 가장 밑바닥에 있고, 그 위해 DataFrame과 Dataset가 있음 RDD는 할 수 있는 것은 많지만, 프로그래밍 생산성이 떨어짐. python을 쓴다면 Dataframe, java/scaler로 한다면 Dataset을 씀 2016년에 DataFrame과 Dataset은 하나의 API로 통합됨 모두 파티션으로 나뉘어 Spark에서 처리됨 DataFrame Code나 Sparksql을 효율적인 자바 바이트 코드(Java bytecode) 로 만들어주는 과정 Cody Analysis : 코드 분석하여 어떤 테이블과, 컬럼을 쓰는지 결정하고, 사용자가 없는 테이블과 컬럼을 쓰면 에..
Spark 데이터 시스템 아키텍처 큰데이터를 ETL하거나 일시적으로 데이터를 select할때는 hive나 presto도 상관 없음 하지만 spark가 각광받는 이유는 하나의 시스템으로 다양한 것들을 할 수 있기 때문 외부데이터의 예 : RDS, Nocurl 등 외부데이터를 주기적으로 ETL을 통해 HDFS로 가져와주어야 함. 이를 위해 1. 주기적으로 ETL작업 진행 (보통 Airflow를 활용) 2. 필요할 때 바로 spark에서 로딩 내부든 외부든 spark에 올라가는 순간 똑같은 데이터가 됨 데이터 병렬처리 데이터가 먼저 분산되어야함 하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록 (128MB) hdfs-site.xml에 있는 dfs.block.size 프로퍼티가 결정 Spark에서는 이를..