[小ネタ]Amazon SageMaker Processingのジョブの一覧をBoto3を使って確認する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon SageMaker Processingを利用することで、SageMaker上で前処理や評価処理等を実行できます。 しかしながら、2019年1月15日現在、マネジメントコンソールからSageMaker Processingのジョブの一覧を確認することができません。 今回はBoto3を使用してSageMaker Processingのジョブの一覧を確認してみます。

やってみる

SageMaker Processingジョブの一覧を取得する

list_processing_jobsを使って、ジョブの取得が可能です。何も引数を設定しない場合直近のジョブが表示されます。そのままだと読みにくいので、データフレーム形式に変換すると読みやすく&扱いやすくなります。

import boto3
import pandas as pd

sm = boto3.Session().client('sagemaker')
jobs = sm.list_processing_jobs()
pd.DataFrame(jobs['ProcessingJobSummaries'])

加工前のデータは次のようにProcessingJobSummariesNextTokenResponseMetadataで構成されるdict形式のデータとなります。(上で取得したデータとは異なります。)

取得するジョブ数を制限する

MaxResultsで取得最大件数を指定することができます。(最大100件)

sm.list_processing_jobs(MaxResults=1)

加工前のデータは次のようにProcessingJobSummariesNextTokenResponseMetadataで構成されるdict形式のデータとなります。

ジョブステータスから絞り込む

StatusEqualsで取得するジョブのステータスを絞り込むことができます。

  • 指定可能なステータス: InProgress, Completed, Failed, Stopping, Stopped
    jobs = sm.list_processing_jobs(StatusEquals='Failed')
    pd.DataFrame(jobs['ProcessingJobSummaries'])

ジョブ名で絞り込む

NameContainsで取得するジョブの名前を絞り込むことができます。

jobs = sm.list_processing_jobs(NameContains='demo')
pd.DataFrame(jobs['ProcessingJobSummaries'])

ジョブの詳細を取得する

describe_processing_jobを使うことで、指定したジョブの詳細情報を取得することができます。

sm.describe_processing_job(ProcessingJobName='demo-smdebug-xgboost-regre-TreeDepth-0c2462e7')

さいごに

Boto3を使用して、Amazon SageMaker Processingのジョブの一覧を取得する方法について紹介しました。