SuperAPI AI 工具集

spark-python-data-source

编程与开发

查看项目

更新于 10-15 20:32

技能介绍

用途:为 Apache Spark 4.0+ 构建自定义 Python 数据源(PySpark DataSource API),实现对外部系统的批式与流式读取和写入。适用于外部数据库、API、消息队列、自定义文件格式或协议、实时流数据源,以及需要特殊认证或协议的系统。

主要能力:提供 DataSource 入口类及 Reader/Writer 的批式和流式实现结构;覆盖分区策略(时间、token 范围、ID 范围)、认证(Databricks Unity Catalog 凭据、云默认凭据、显式凭据)、类型转换、流式 offset 与恰好一次语义、错误重试与断路器,以及基于 pytest 与 mock 的测试模式。

使用方式:按扁平单级继承结构组织代码,DataSource 类通过 name() 返回格式名并实现 schema()、reader()、streamReader()、writer()、streamWriter();基础读写类共享选项校验与数据处理逻辑,批式与流式类分别继承对应接口。分区内导入依赖库,写入按 batch_size 分批发送。项目可用 poetry new 创建并添加依赖:poetry add pyspark pytest pytest-spark;开发命令必须使用 poetry run,如 poetry run pytest、poetry run ruff check src/、poetry run ruff format src/、poetry build。注册后用 spark.dataSource.register(YourDataSource),再通过 spark.read / readStream / write / writeStream 配合 format 与 option 调用。

限制与注意:资料强调避免抽象基类、工厂模式、依赖注入、装饰器、复杂配置类、不必要的 async/await 与连接池、过早优化及模块级重型库导入;不可直接使用 python 命令而在 poetry 环境中需用 poetry run。资料未提供收费、价格、支持平台或效果数据。