用途:指导开发者使用 PySpark DataSource API 为 Apache Spark 4.0+ 编写自定义 Python 数据源,从外部系统批量或流式读取、写入数据。
主要能力:给出数据源整体架构(DataSource 入口类、Base Reader/Writer 基类、Batch 与 Stream 类分别混入 DataSourceReader/DataSourceWriter 与 DataSourceStreamReader/DataSourceStreamWriter);说明 Spark 特有约束,如仅用扁平单级继承以保证序列化、在 executor 方法内部导入第三方库、尽量减少依赖、除非外部 SDK 仅支持异步否则不用 async/await;并覆盖分区策略(时间、token 范围、ID 范围)、认证优先级(Unity Catalog、云默认凭据、显式凭据)、Spark 与外部类型双向映射、流式偏移与 exactly-once、重试与熔断等错误处理,以及单元/集成测试模式。
使用方式:用 uv、poetry 或 hatch 创建项目,示例命令为 uv init your-datasource、uv add pyspark pytest pytest-spark,并通过 uv run pytest、uv run ruff check src/、uv build 等运行测试、检查与构建。测试示例使用 pytest 与 unittest.mock 的 patch/Mock,配合本地 SparkSession。
适用场景:为 REST API、数据库、消息系统等构建 Spark 连接器,支持分页、分片、OAuth2、TLS 流式等。
限制:面向 Spark 4.0+;需在集群所有 executor 节点安装依赖;具体实现细节需参考随附的模板与模式文档,资料未提供完整代码与价格信息。