[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] 3. Spark SQL
·
데이터/Spark
Spark SQL구조화된 데이터 처리를 위한 Spark 모듈DataFrame 작업을 SQL로 처리 가능DataFrame에 테이블 명 지정 후 SQL 함수 사용 가능pandas에도 pandasql 모듈의 sqldf 함수를 이용하는 동일한 패턴 존재HQL(Hive Query Language)과 호환 제공Hive 테이블을 읽고 쓸 수 있음 (Hive Metastore)Spark SQL vs. DataFrameSQL로 가능한 작업은 굳이 DataFrame을 사용할 이유 X!두 기술을 혼합해서 사용 가능!Spark SQL이 갖는 장점가독성과 사용 친화성Spark SQL 엔진이 최적화에 유리!DataFrame에 비해 포팅이 쉽고 접근 권한 체크도 유리!Spark SQL 사용법namegender_df.createOr..