Spark API
Goose Spark API 实现了 PySpark API,让你可以使用熟悉的 Spark API 与 Goose 交互。 所有语句都会通过我们的 relational API 转换为 Goose 的内部计划,并由 Goose 的查询引擎执行。
警告 Goose Spark API 目前仍处于实验阶段,部分功能尚未实现。我们非常欢迎反馈。如果你缺少某些功能,请通过 Discord 或 GitHub 告知我们。
示例
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 保持一致。