ray.data.Dataset.write_mongo#
- Dataset.write_mongo(uri: str, database: str, collection: str, ray_remote_args: Dict[str, Any] = None, concurrency: int | None = None) None [源代码]#
将
Dataset
写入 MongoDB 数据库。此方法仅支持可转换为 pyarrow 表格的数据集。
并行写入的数量由数据集中的块数决定。要控制块的数量,请调用
repartition()
。警告
此方法仅支持 PyArrow 类型的一个子集,这是由于底层使用的 pymongoarrow 的限制。写入不支持的类型会在类型检查时失败。查看所有支持的类型请访问:https://mongo-arrow.readthedocs.io/en/latest/data_types.html。
备注
记录作为新文档插入到 MongoDB 中。如果记录包含 _id 字段,此 _id 在 MongoDB 中必须不存在,否则写入将被拒绝并失败(因此预先存在的文档受到保护,不会被修改)。记录中没有 _id 字段也是可以的,MongoDB 会在插入时自动生成一个。
备注
此操作将触发对此数据集执行的延迟转换。
示例
import ray ds = ray.data.range(100) ds.write_mongo( uri="mongodb://username:password@mongodb0.example.com:27017/?authSource=admin", database="my_db", collection="my_collection" )
- 参数:
uri – 数据集写入的目标 MongoDB 的 URI。关于 URI 格式,请参阅 MongoDB 文档 中的详细信息。
database – 数据库的名称。此数据库必须存在,否则会引发 ValueError。
collection – 数据库中集合的名称。此集合必须存在,否则会引发 ValueError。
ray_remote_args – 传递给写任务中
remote()
的 kwargs。concurrency – Ray 任务的最大并发运行数量。设置此参数以控制并发运行的任务数量。这不会改变运行的任务总数。默认情况下,并发性是根据可用资源动态决定的。
- 抛出:
ValueError – 如果
database
不存在。ValueError – 如果
collection
不存在。
PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。