728x90
반응형
Parquet 파일 생성 및 조회
우선 Parquet 파일이 없으면 생성부터 시작합니다.
import pandas as pd
# 예시 DataFrame
df = pd.DataFrame({
'region': ['Seoul', 'Busan', 'Seoul', 'Incheon', 'Busan', 'Seoul'],
'sales': [100, 200, 150, 180, 210, 170]
})
# Parquet 저장
df.to_parquet("sales.parquet", index=False)
Parquet 파일 조회하는 예입니다.
import duckdb
# DuckDB에서 Parquet 읽기 (Pandas 없이)
query = """
SELECT region, COUNT(*) AS cnt, AVG(sales) AS avg_sales
FROM 'sales.parquet'
GROUP BY region
ORDER BY cnt DESC
"""
result = duckdb.query(query).to_df()
result ## output이 없으면 print로 출력
지역별 Sales 순위로 구하는 분석함수 사용 예입니다.
query = """
SELECT *,
RANK() OVER (PARTITION BY region ORDER BY sales DESC) AS rank_in_region
FROM 'sales.parquet'
WHERE sales >= 150
"""
df = duckdb.query(query).to_df
df
폴더 내 파일 여러개 조회
# 폴더 내 모든 parquet 파일을 분석
duckdb.query("""
SELECT * FROM 'data/*.parquet'
""").to_df()
# data파일내 여러개 parquet 파일 조회
Copy 로 출력 파일 생성
import duckdb
# 추출, 변환 및 로드
query = """
COPY (
SELECT *,
RANK() OVER (PARTITION BY region ORDER BY sales DESC) AS rank_in_region
FROM 'sales.parquet'
WHERE sales >= 150
) TO 'output.csv' (FORMAT CSV, HEADER TRUE)
"""
duckdb.query(query)
print ( "ETL 작업이 완료되었습니다. 데이터가 'output.csv'에 저장되었습니다." )
parquet 파일을 가공하여 output.csv 파일로 생성하는 코드입니다.
DuckDB 소개는 이것으로 마치도록 하겠습니다. 웬만한 작업은 db 별도 설치 없이 작업이 가능하니 많은 분들
잘 활용하시기 바랍니다.
상세한 옵션들은 공식 홈페이지를 참고하세요.
728x90
반응형
'데이터분석' 카테고리의 다른 글
분석을 위한 통계(Statistics)1 (0) | 2025.04.10 |
---|---|
Colab 한글폰트 문제 해결 (0) | 2025.04.10 |
DuckDB-2(테이블 활용) (0) | 2025.04.09 |
DuckDB-1 (파일SQL) (0) | 2025.04.08 |
pandas 컬럼명 변경 (0) | 2025.04.08 |