跳到主要内容

Spark API

Goose Spark API 实现了 PySpark API,让你可以使用熟悉的 Spark API 与 Goose 交互。 所有语句都会通过我们的 relational API 转换为 Goose 的内部计划,并由 Goose 的查询引擎执行。

警告 Goose Spark API 目前仍处于实验阶段,部分功能尚未实现。我们非常欢迎反馈。如果你缺少某些功能,请通过 DiscordGitHub 告知我们。

示例

from goose.experimental.spark.sql import SparkSession as session
from goose.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 保持一致。