airflow.providers.google.cloud.hooks.mlengine

此模块包含一个 Google ML Engine Hook。

属性

log

MLEngineHook

用于 Google ML Engine API 的 Hook。

MLEngineAsyncHook

用于获取 MLEngine 异步 Hook 的类。

模块内容

airflow.providers.google.cloud.hooks.mlengine.log[source]
class airflow.providers.google.cloud.hooks.mlengine.MLEngineHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]

基类: airflow.providers.google.common.hooks.base_google.GoogleBaseHook

用于 Google ML Engine API 的 Hook。

Hook 中所有使用 project_id 的方法必须使用关键字参数调用,而不是位置参数。

get_conn()[source]

检索与 MLEngine 的连接。

返回值:

Google MLEngine 服务对象。

返回类型:

googleapiclient.discovery.Resource

create_job(job, project_id, use_existing_job_fn=None)[source]

启动一个 MLEngine 作业并等待其达到终端状态。

参数:
  • project_id (str) – 启动 MLEngine 作业的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • job (dict) –

    应提供给 MLEngine API 的 MLEngine Job 对象,例如

    {
      'jobId': 'my_job_id',
      'trainingInput': {
        'scaleTier': 'STANDARD_1',
        ...
      }
    }
    

  • use_existing_job_fn (Callable | None) – 如果已存在具有相同 job_id 的 MLEngine 作业,则此方法(如果提供)将决定我们是否应该使用此现有作业,继续等待其完成并返回作业对象。它应接受一个 MLEngine 作业对象,并返回一个布尔值,指示是否可以重用现有作业。如果未提供“use_existing_job_fn”,我们默认重用现有 MLEngine 作业。

返回值:

如果作业成功达到终端状态(可能是 FAILED 或 CANCELLED 状态),则返回 MLEngine 作业对象。

返回类型:

dict

create_job_without_waiting_result(body, project_id)[source]

启动一个 MLEngine 作业并等待其达到终端状态。

参数:
  • project_id (str) – 启动 MLEngine 作业的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • body (dict) –

    应提供给 MLEngine API 的 MLEngine Job 对象,例如

    {
      'jobId': 'my_job_id',
      'trainingInput': {
        'scaleTier': 'STANDARD_1',
        ...
      }
    }
    

返回值:

如果作业成功达到终端状态(可能是 FAILED 或 CANCELLED 状态),则返回对象的 MLEngine job_id。

cancel_job(job_id, project_id)[source]

取消一个 MLEngine 作业。

参数:
  • project_id (str) – 要取消 MLEngine 作业的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • job_id (str) – 要取消的 Google MLEngine 训练作业的唯一 ID。

返回值:

如果成功取消,返回空 dict

抛出异常:

googleapiclient.errors.HttpError

返回类型:

dict

get_job(project_id, job_id)[source]

根据作业 ID 获取一个 MLEngine 作业。

参数:
  • project_id (str) – 作业所在的 Google Cloud 项目。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

  • job_id (str) – Google MLEngine 作业的唯一 ID。(模板化)

返回值:

如果成功,返回 MLEngine 作业对象。

抛出异常:

googleapiclient.errors.HttpError

返回类型:

dict

create_version(model_name, version_spec, project_id)[source]

在 Google Cloud ML Engine 上创建版本。

参数:
  • version_spec (dict) – 包含版本信息的字典。(模板化)

  • model_name (str) – 版本所属的 Google Cloud ML Engine 模型名称。(模板化)

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

返回值:

如果版本创建成功,则返回操作对象。否则抛出错误。

返回类型:

dict

set_default_version(model_name, version_name, project_id)[source]

将某个版本设置为默认版本。阻塞直到完成。

参数:
  • model_name (str) – 版本所属的 Google Cloud ML Engine 模型名称。(模板化)

  • version_name (str) – 用于操作的版本的名称。(模板化)

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

返回值:

如果成功,返回一个 Version 实例。否则抛出错误。

抛出异常:

googleapiclient.errors.HttpError

返回类型:

dict

list_versions(model_name, project_id)[source]

列出模型所有可用版本。阻塞直到完成。

参数:
  • model_name (str) – 版本所属的 Google Cloud ML Engine 模型名称。(模板化)

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

返回值:

返回一个 Version 实例列表。

抛出异常:

googleapiclient.errors.HttpError

返回类型:

list[dict]

delete_version(model_name, version_name, project_id)[source]

删除模型的给定版本。阻塞直到完成。

参数:
  • model_name (str) – 版本所属的 Google Cloud ML Engine 模型名称。(模板化)

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。

  • version_name (str) – 用于操作的版本的名称。(模板化)

返回值:

如果版本删除成功,则返回操作对象。否则抛出错误。

返回类型:

dict

create_model(model, project_id)[source]

创建模型。阻塞直到完成。

参数:
  • model (dict) – 包含模型信息的字典。

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

返回值:

如果模型创建成功,则返回一个 Model 实例。否则抛出错误。

抛出异常:

googleapiclient.errors.HttpError

返回类型:

dict

get_model(model_name, project_id)[source]

获取模型。阻塞直到完成。

参数:
  • model_name (str) – 模型名称。

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

返回值:

如果模型存在,则返回一个 Model 实例。否则返回 None。

抛出异常:

googleapiclient.errors.HttpError

返回类型:

dict | None

delete_model(model_name, project_id, delete_contents=False)[source]

删除模型。阻塞直到完成。

参数:
  • model_name (str) – 模型名称。

  • delete_contents (bool) – 即使模型不为空,是否强制删除。如果设置为 True,将删除数据集中的所有版本(如果存在)。默认值为 False。

  • project_id (str) – MLEngine 模型所属的 Google Cloud 项目名称。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。(模板化)

抛出异常:

googleapiclient.errors.HttpError

class airflow.providers.google.cloud.hooks.mlengine.MLEngineAsyncHook(**kwargs)[source]

基类: airflow.providers.google.common.hooks.base_google.GoogleBaseAsyncHook

用于获取 MLEngine 异步 Hook 的类。

sync_hook_class[source]
scopes = ['https://www.googleapis.com/auth/cloud-platform'][source]
async get_job(job_id, session, project_id=PROVIDE_PROJECT_ID)[source]

通过作业 ID 和项目 ID 获取指定的作业资源。

async get_job_status(job_id, project_id=PROVIDE_PROJECT_ID)[source]

使用 gcloud-aio 异步轮询作业状态。

请注意,当作业结果仍在等待时,会抛出 OSError。异常表示作业完成时出现错误

此条目有帮助吗?