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 任务的最大并发运行数量。设置此参数以控制并发运行的任务数量。这不会改变运行的任务总数。默认情况下,并发性是根据可用资源动态决定的。

抛出:

PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。