Zum Inhalt springen

Spark-API

Die DuckDB-Spark-API implementiert die PySpark-API und ermöglicht es, die vertraute Spark-API für die Interaktion mit DuckDB zu verwenden. Alle Anweisungen werden mithilfe unserer relationalen API in interne Pläne von DuckDB übersetzt und mit der Abfrage-Engine von DuckDB ausgeführt.

Warning Die DuckDB-Spark-API ist derzeit experimentell, und es fehlen noch Funktionen. Wir sind sehr an Feedback interessiert. Bitte melden Sie fehlende Funktionalität entweder über Discord oder auf GitHub.

Beispiel

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')
]

Beitragsrichtlinien

Beiträge zur experimentellen Spark-API sind willkommen. Bitte beachten Sie bei einem Beitrag die folgenden Richtlinien:

  • Verwenden Sie statt temporärer Dateien unser Test-Framework pytest.
  • Stellen Sie beim Hinzufügen neuer Funktionen sicher, dass die Methodensignaturen denen der PySpark-API entsprechen.