DuckDB Spark API 实现了 PySpark API,允许您使用熟悉的 Spark API 与 DuckDB 进行交互。 所有语句都使用我们的 relational API 转换为 DuckDB 的内部计划,并使用 DuckDB 的查询引擎执行。
警告 DuckDB Spark API 目前处于实验阶段,功能尚不完善。我们非常欢迎您的反馈。如果您发现任何缺失的功能,请通过 Discord 或 GitHub 报告。
Example
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中的签名。