데이터 엔지니어링/Spark

데이터 엔지니어링/Spark

8. Spark DataFrame 실습(SparkSession, conf, Schema, Filter, select, SparkSQL, sql.types, 컬럼지칭 방식)

실습 1. 헤더가 없는 CSV 파일 처리하기 입력 데이터 : 헤더가 없는 CSV 파일 데이터에 스키마 지정하기 SparkConf 사용해보기 measure_type 값이 TMIN인 레코드 대상으로 stationId별 최소 온도 찾기 1) Spark로 CSV 로드(SparkSession, conf, Schema 지정) from pyspark.sql import SparkSession from pyspark import SparkConf # SparkConf로 SparkSession의 환경 설정 conf = SparkConf() # application의 이름 conf.set("spark.app.name", "PySpark DataFrame #1") # master 설정, local 모든 스레드를 가져오겠다 ..

데이터 엔지니어링/Spark

7. 윈도우에 Local Standalone Spark 클러스터 설치, Spark-submit 오류 해결, findspark

윈도우 10+ 기반 JDK11과 파이썬 3.8 혹은 그 이상을 설치 java -version python --version SPARK 3.0 설치 1. C드라이브의 루트 밑에 Spark, Hadoop이라는 폴더를 생성한다. Spark: C:\Spark Hadoop: C:\Hadoop 2. 아래 링크 방문 후 가장 최신 버전을 다운로드. 다운로드 파일을 Spark 폴더에서 압축 풀기 https://spark.apache.org/downloads.html Downloads | Apache Spark Download Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the an..

데이터 엔지니어링/Spark

6. Spark(개발환경 옵션, Local Standalone, 활용 Demo)

Spark 개발환경 옵션 Local Standalone Spark + Spark Shell Python IDE - Pycharm, Visual Studio Databricks Cloud - 커뮤니티 에디션을 무료로 사용 다른 노트북 - 주피터 노트북, 구글 Colab, 아나콘다 등 Local Standalone Spark Spark Cluster Manager로 local[n] 지정 master를 local[n]으로 지정 master는 클러스터 매니저를 지정하는데 사용 주로 개발이나 간단한 테스트 용도 하나의 JVM에서 모든 프로세스를 실행 하나의 Driver와 하나의 Executor가 실행됨 1 + 쓰레드가 Executor안에서 실행됨 Executor안에 생성되는 쓰레드 수 local : 하나의 쓰레드..

데이터 엔지니어링/Spark

5. Spark 프로그램 구조(Spark Session 생성, 환경변수)

1. SPARK SESSION 생성 Spark Session 생성 Spark 프로그램의 시작은 SparkSession을 만드는 것 프로그램마다 하나를 만들어 Spark cluster와 통신 : Singleton 객체 Spark 2.0에서 처음 소개 Spark Session을 통해 Spark이 제공해주는 다양한 기능을 사용 DataFrame, SQL, Streaming, ML API 모두 이 객체로 통신 config 메소드를 이용해 다양한 환경설정 가능 단 RDD와 관련된 작업을 할 때는 SparkSession 밑의 spark Context 객체를 사용 Spark Session API 문서 pyspark.sql.SparkSession — PySpark 3.1.1 documentation (apache.or..

데이터 엔지니어링/Spark

4. Spark 프로그래밍 : DataFrame(데이터처리, 동작구조)

1. Spark 데이터 시스템 아키텍처 adhoc 형태의 인터랙티브 쿼리를 날리거나 할 때, presto나 hive를 써도 큰 상관이 없다. 다만 Spark으로 옮겨가는 이유는 하나의 시스템으로 다양한 기능을 할 수 있기 때문이다. 외부 데이터(RDB, NOSQL)는 로딩해서 프로세싱해서 데이터엔지니어들이 HDFS로 주기적으로 읽어오게 한다. 보통 ETL JOB 스케줄을 위해서는 AIRFLOW를 사용한다. 다른 방법으로는 SPARK에서 로딩을 해서 보내는 거다. SPARK STREAMING 배치로 SPARK SQL 활용 LOAD 하는 곳은 NOSQL, RDB, 데이터 레이크가 될 수도 있다. DATA STRUCTURE들이 나뉘어서 SPARK에 LOAD 된다. 데이터 병렬처리가 가능하려면? 데이터가 먼저 ..

데이터 엔지니어링/Spark

3. 빅데이터 처리와 Spark 소개(Spark 소개, Spark 프로그램 실행 옵션)

1. Spark 소개 버클리 대학의 AMPlab에서 아파치 오픈소스 프로젝트로 2013 시작 나중에 DataBricks라는 스타트업 창업 하둡의 뒤를 잇는 2세대 빅데이터 기술 YARN등을 분산환경으로 사용 Scala로 작성됨 빅데이터 처리 관련 다양한 기능 제공 Spark 3.0의 구성 Spark Core Spark SQL Spark ML : 데이터프레임 기반 Spark MLlib : RDD라는 데이터 스트럭처 기반(없어지는 단계) Spark Streaming Spark GraphX Spark vs MapReduce Spark은 기본적으로 메모리 기반 메모리가 부족해지면 디스크 사용 MapReduce는 디스크 기반 MapReduce는 하둡(YARN) 위에서만 동작 Spark은 하둡(YARN) 이외에도 ..

데이터 엔지니어링/Spark

2. 빅데이터 처리와 Spark 소개(맵리듀스 프로그래밍)

1. 맵리듀스 프로그래밍의 특징 데이터 셋은 Key, Value의 집합이며 변경 불가(immutable) 데이터 조작은 map과 reduce 두 개의 오퍼레이션으로만 가능 이 두 오퍼레이션은 항상 하나의 쌍으로 연속으로 실행됨 이 두 오퍼레이션의 코드를 개발자가 채워야함 나머지는 시스템이 다 알아서 함 맵리듀스 시스템이 Map의 결과를 Reduce 단으로 모아줌 이 단계를 보통 셔플링이라 부르며 네트워크 단을 통한 데이터 이동이 생김 같은 키의 값들을 묶어서 밸류를 묶어주는 게 reduce 이 과정이 셔플링 map이 돌아가는 서버와 reduce 돌아가는 서버가 다르기 때문에, 네트워크를 통한 데이터 전송 이 셔플링 과정이 길어질 경우, 데이터 처리 과정이 길어짐 맵 리듀스 프로그래밍의 핵심 : 맵과 리듀..

데이터 엔지니어링/Spark

1. 빅데이터 처리와 Spark 소개(빅데이터 정의, 하둡 이론 등)

1. 빅데이터 정의와 예 빅데이터의 정의 (1) 빅데이터의 정의 1 서버 한대로 처리할 수 없는 규모의 데이터 2012년 4월 아마존 클라우드 컨퍼런스에서 아마존의 data scientist인 존 라우저가 내린 정의 분산 환경이 필요하느냐에 포커스 판다스로 처리해야할 데이터가 너무 커서 처리가 불가능하다면 어떻게 할 것인가? (2) 빅데이터의 정의 2 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 대표적인 기존 소프트웨어 오라클이나 MySQL과 같은 관계형 데이터베이스 분산환경을 염두하지 않음 Scale-Up 접근 방식(vs. Scale-out) 메모리 추가, CPU 추가, 디스크 추가 (3) 빅데이터의 정의 3 4V(Volume, Velocity, Variety, Varecity) Volume :..

우상욱
'데이터 엔지니어링/Spark' 카테고리의 글 목록 (3 Page)