⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
Spark API

DuckDB Spark API 实现了 PySpark API,允许您使用熟悉的 Spark API 与 DuckDB 进行交互。所有语句都会通过我们的 关系型 API 转换为 DuckDB 的内部执行计划,并使用 DuckDB 的查询引擎进行执行。

警告:DuckDB Spark API 目前处于实验阶段,仍有部分功能缺失。我们非常期待您的反馈。如果您发现缺少某些功能,请通过 DiscordGitHub 进行反馈。

示例

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 中的签名保持一致。
© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南