Dataframe API는 데이터 분석가가 SQL 식을 사용하여 데이터를 쿼리하고 조작할 수 있도록 하는 Spark SQL 라이브러리의 일부입니다.
Spark 카탈로그에서 데이터베이스 오브젝트 만들기
Spark 카탈로그는?
Apache Spark에서 "카탈로그"는 메타데이터 관리를 위한 중요한 구성 요소입니다. 이 카탈로그는 Spark SQL을 사용하여 데이터베이스, 테이블, 뷰, 함수 및 기타 메타데이터를 관리하는 데 사용됩니다. Spark 카탈로그의 주요 기능은 다음과 같습니다.
- 데이터베이스 관리: Spark 카탈로그를 사용하여 데이터베이스를 생성, 삭제, 변경 및 조회할 수 있습니다. 데이터베이스는 관련 테이블과 뷰의 논리적 컨테이너 역할을 합니다.
- 테이블과 뷰 관리: 카탈로그를 통해 테이블과 뷰를 생성, 삭제, 변경 및 조회할 수 있습니다. 테이블은 구조화된 데이터의 컬렉션을 나타내며, 뷰는 기존 테이블이나 뷰에서 파생된 가상의 테이블입니다.
- 함수 관리: 사용자 정의 함수(UDF) 및 내장 함수에 대한 정보를 조회하고 관리할 수 있습니다.
- 메타데이터 캐싱: Spark 카탈로그는 메타데이터의 캐싱을 지원하여, 데이터 소스의 메타데이터를 빠르게 조회할 수 있도록 합니다.
- 통합 메타데이터 관리: 여러 데이터 소스와의 통합을 지원하여, 다양한 저장소 시스템에 있는 데이터에 대한 메타데이터를 중앙에서 관리할 수 있습니다.
- Spark SQL과의 통합: 카탈로그는 Spark SQL과 밀접하게 통합되어 있어, SQL 쿼리를 사용하여 메타데이터를 관리하고 데이터를 쿼리할 수 있습니다.
- API 지원: Spark 카탈로그는 프로그래밍 방식으로 메타데이터를 관리할 수 있는 API를 제공합니다. 이를 통해 스크립트나 어플리케이션에서 메타데이터를 동적으로 관리할 수 있습니다.
Spark 카탈로그의 사용은 Spark SQL의 성능과 유연성을 크게 향상시킬 수 있으며, 대규모 데이터 처리 작업에서 메타데이터 관리의 복잡성을 줄여줍니다.
Spark 카탈로그에서 쿼리에 사용할 수 있도록 데이터 프레임의 데이터를 만드는 가장 간단한 방법은 임시 보기를 만드는 것입니다.
df.createOrReplaceTempView("products_view")
보기는 일시적이므로 현재 세션이 끝날 때 자동으로 삭제됩니다.
카탈로그에 유지되는 테이블을 만들어 Spark SQL을 사용하여 쿼리할 수 있는 데이터베이스를 정의할 수도 있습니다.
Microsoft Fabric에서 관리형 테이블의 데이터는 데이터 레이크에 표시된 테이블 스토리지 위치에 저장되고 Spark를 사용하여 만든 모든 테이블이 해당 위치에 나열됩니다.
spark.catalog.createTable 메서드를 사용하여 빈 테이블을 만들거나
saveAsTable 메서드를 사용하여 데이터 프레임을 테이블로 저장할 수 있습니다.
관리형 테이블을 삭제하면 기본 데이터도 삭제됩니다.
# 새로운 테이블로 만들기
df = spark.read.load('Files/data/products.csv',
format='csv',
header=True
)
df.write.format("delta").saveAsTable("products2")
#빈테이블 만들기
spark.catalog.createTable("newtable")
# 새로운 테이블 조회하기
df = spark.sql("SELECT * FROM lakehouse_test.products2 LIMIT 1000")
display(df)
Spark SQL API를 사용하여 데이터 쿼리
어떤 언어로든 Spark SQL API를 사용하여 카탈로그의 데이터를 쿼리할 수 있습니다.
예를 들어 다음 PySpark 코드는 SQL 쿼리를 사용하여 products 테이블의 데이터를 데이터 프레임으로 반환합니다.
bikes_df = spark.sql("SELECT ProductKey, ProductName, ListPrice \
FROM products \
WHERE SubCategory IN ('Mountain Bikes', 'Road Bikes')")
display(bikes_df)
Notebook에서는 다음과 같이 %%sql 매직을 사용하여 카탈로그의 개체를 쿼리하는 SQL 코드를 실행할 수도 있습니다.
%%sql
SELECT SubCategory, COUNT(ProductKey) AS ProductCount
FROM products
GROUP BY SubCategory
ORDER BY SubCategory
'Microsoft Fabric > Fabric 실습 2 - Spark' 카테고리의 다른 글
06. Apache Spark로 데이터 분석 연습하기 (0) | 2024.01.30 |
---|---|
05. Spark Notebook에서 데이터 시각화 (0) | 2024.01.30 |
03. Spark 데이터 프레임에서 데이터 사용해 보기 (0) | 2024.01.25 |
02. Spark 코드 실행하기 (0) | 2024.01.25 |
01. Apache Spark 사용 설정하기 (0) | 2024.01.25 |