[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..
[Spark] 1. Spark?
·
데이터/Spark
Spark?대규모 데이터 처리와 분석을 위해 개발된 오픈 소스 분산 데이터 처리 프레임워크Hadoop을 잇는 2세대 빅데이터 기술로 YARN 등을 분산 환경으로 사용Spark 주요 특징빠른 데이터 처리Spark는 데이터를 메모리에 유지하며 처리하여 디스크 I/O 작업 감소반복적인 작업에 뛰어난 성능다양한 데이터 소스 지원HDFS(Hadoop Distributed File System)Amazon S3, Azure StorageNoSQL DB(Cassandra, HBase 등)SQL DB와 통합 가능다중 언어 지원Python(PySpark), Java, Scala, R, SQL 등 다양한 프로그래밍 언어로 작업 가능확장성수백 ~ 수천 대의 클러스터 노드를 확장하여 대규모 데이터를 병렬로 처리다양한 라이브러..