[Spark] 5. File Format
·
데이터/Spark
Spark File FormatCSV특징텍스트 기반의 파일 포맷데이터를 콤마로 구분장점매우 단순하고, 다른 시스템에서 쉽게 사용 가능가벼운 데이터 전송을 위해 사용단점스키마 정보가 포함되지 않아서 데이터 구조를 명확히 알 수 없음큰 데이터셋 처리 시 성능 저하예시df = spark.read.option("header", "true").csv("path/to/file.csv") JSON특징텍스트 기반의 파일 포맷키-값 쌍의 형태로 데이터 저장데이터 계층 구조 지원장점유연한 데이터 구조 지원다른 시스템과 쉽게 호환단점대량의 데이터에 대해 성능 좋지 않음 (텍스트로 저장되기에 크기 증가)스키마 정보 명시적으로 제공 X예시df = spark.read.json("path/to/file.json") Parquet특..
[Spark] 4. Database & Table
·
데이터/Spark
Spark에서의 데이터베이스 & 테이블 관리CatalogSpark에서 테이블과 뷰에 대한 메타데이터를 관리하는 시스템메모리 기반 카탈로그 : Spark 세션이 끝나면 메타데이터가 사라짐Hive와 호환되는 카탈로그 : Persistent 카탈로그로, 세션 종료 후에도 테이블, 뷰 유지테이블 관리 방식테이블은 데이터베이스라는 폴더와 같은 구조로 관리2단계 구조 : 데이터베이스 -> 테이블테이블 유형메모리 기반 테이블/뷰임시 테이블로, 세션 중에만 유효세션 종료시 사라짐예시# 메모리 기반 임시 테이블 생성 예시data = [(1, 'Alice'), (2, 'Bob')]df = spark.createDataFrame(data, ['id', 'name'])# DataFrame을 메모리 기반 테이블로 등록df.cr..
[Spark] 2. Spark Session
·
데이터/Spark
Spark SessionSpark 프로그램의 시작은 Spark Session의 생성프로그램마다 하나를 만들어 Spark Cluster와 통신 -> Singleton 객체Spark 2.0에서 처음 소개Spark Session을 통해 Spark가 제공해주는 다양한 기능 사용DataFrame, SQL, Streaming, ML API 모두 해당 객체로 통신config 메소드를 이용해 다양한 환경설정 가능단, RDD와 관련된 작업을 할 때는 SparkSession 밑의 sparkContext 객체를 사용Spark Session API 문서Spark 세션 생성 예제from pyspark.sql import SparkSession# SparkSession - Singletonspark = SparkSession.b..