⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 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 中的规定。