본문 바로가기

분류 전체보기30

[4장] 스파크 SQL과 데이터 프레임: 내장 데이터 소스 소개 [2] SQL 테이블과 뷰 스파크는 각 테이블과 해당 데이터에 관련된 정보인 스키마, 설명, 테이블명, 데이터베이스명, 칼럼명, 파티션, 실제 데이터의 물리적 위치 등의 메타데이터를 가지고 있고, 이 모든 정보는 중앙 메타스토어에 저장된다. 관리형 테이블과 비관리형 테이블 스파크는 관리형과 비관리형이라는 두 가지 유형의 테이블을 만들 수 있다. 관리형 테이블의 경우 스파크는 메타데이터와 파일 저장소의 데이터를 모두 관리하며, 비관리형 테이블의 경우에는 오직 메타데이터만 관리하고 카산드라와 같은 외부 데이터 소스에서 데이터를 직접 관리한다. SQL 데이터 베이스와 테이블 생성하기 테이블은 데이터베이스 안에 존재하기에 스파크에게 learn_spark_db라는 데이터베이스를 생성하고 스파크에게 해당 데이터베이스를 사.. 2023. 8. 3.
[4장] 스파크 SQL과 데이터 프레임: 내장 데이터 소스 소개 [1] 스파크 SQL의 특징 3장에서 살펴본 상위 수준의 정형화 API가 엔진으로 제공된다. 다양한 정형 데이터를 읽거나 쓸 수 있다.(JSON, 하이브 테이블, Parquet, Avro, ORC, CSV) 태블로, 파워BI, 탈렌드와 같은 외부 비즈니스 인텔리전스의 데이터 소스나 MySQL 및 PostgreSQL과 같은 RDBMS의 데이터를 JDBC/ODBC 커넥터를 사용하여 쿼리할 수 있다. 스파크 애플리케이션에서 데이터베이스 안에 테이블 또는 뷰로 저장되어 있는 정형 데이터와 소통할 수 있도록 프로그래밍 인터페이스를 제공한다. SQL 쿼리를 정형 데이터에 대해 실행할 수 있는 대화형 셸을 제공한다. ANSI SQL:2003 호환 명령 및 HiveQL을 지원한다. 스파크 애플리케이션에서 스파크 SQL 사용하.. 2023. 8. 1.
[3장] 아파치 스파크의 정형화 API [2] 자주 쓰이는 데이터 프레임 작업들 데이터 프레임에서 일반적인 데이터 작업을 수행하려면 구조화된 데이터를 갖고 있는 데이터 소스에서 데이터 프레임으로 로드를 해야하는데, 이를 위해 스파크는 DataFrameReader라는 이름의 인터페이스를 제공한다. 이 인터페이스는 JSON, CSV, Parquet, 텍스트, 에이브로, ORC 같은 다양한 포맷의 데이터 소스를 읽는것을 지원한다. 특정 포맷의 데이터소스에 데이터 프레임의 데이터를 써서 내보내기 위해서는 DataFrameWriter를 쓴다. # 파이썬에서 스키마를 정의한다. from pyspark.sql.types import * # 프로그래밍적인 방법으로 스키마를 정의한다. fire_schema = StructType([StructField('CallNu.. 2023. 7. 25.
[3장] 아파치 스파크의 정형화 API [1] 스파크 : RDD 아래에는 무엇이 있나? RDD는 스파크에서 가장 기본적인 추상적인 부분이다 RDD의 특성은 다음과 같다. 의존성(dependency) 어떤 입력을 필요로 하고 현재의 RDD가 어떻게 만들어지는지 스파크에게 가르쳐 주는 의존성이 필요한데, 결과를 새로 만들어야 하는 경우 스파크는 이 의존성 정보를 참고하고 연산을 다시 반복해서 RDD를 다시 만들 수 있고, 이 특성이 RDD에 유연성을 부여해준다. 파티션(지역성 정보 포함) 파티션은 스파크에게 작업을 나눠서 이그제큐터들에 분산해 파티션별로 병렬 연산할 수 있는 능력을 부여한다. 연산 함수 : Partition => Iterator[T] RDD는 RDD에 저장되는 데이터를 Iterator[T] 형태로 만들어 주는 연산 함수를 갖고 있다. 다.. 2023. 7. 20.