Spark API
Spark API
DuckDB Spark API는 PySpark API를 구현해서, 익숙한 Spark API로 DuckDB와 상호작용할 수 있게 해줘요. 모든 문장은 DuckDB의 relational API를 통해 내부 플랜으로 변환된 뒤 DuckDB의 쿼리 엔진으로 실행됩니다.
출처: 문서
본문
경고 — DuckDB Spark API는 현재 실험적이며 아직 빠진 기능이 있어요. 피드백에 매우 관심이 많답니다. 빠진 기능이 있다면 Discord나 GitHub 이슈로 알려주세요.
예시
from duckdb.experimental.spark.sql import SparkSession as session
from duckdb.experimental.spark.sql.functions import lit, col
import pandas as pd
spark = session.builder.getOrCreate()
pandas_df = pd.DataFrame({
'age': [34, 45, 23, 56],
'name': ['Joan', 'Peter', 'John', 'Bob']
})
df = spark.createDataFrame(pandas_df)
df = df.withColumn(
'location', lit('Seattle')
)
res = df.select(
col('age'),
col('location')
).collect()
print(res)
[
Row(age=34, location='Seattle'),
Row(age=45, location='Seattle'),
Row(age=23, location='Seattle'),
Row(age=56, location='Seattle')
]
기여 가이드라인
실험적 Spark API에 대한 기여는 언제나 환영이에요. 기여할 때는 다음 가이드라인을 따라주세요.
- 임시 파일을 사용하는 대신 우리의
pytest테스트 프레임워크를 사용해 주세요. - 새 함수를 추가할 때는 메서드 시그니처가 PySpark API의 것과 일치하는지 확인해 주세요.
더 알아보기 (Learn more)
- DuckDB의 relational API는
clients/python/relational_api문서를 참고해 주세요.