FileDataset クラス

Azure Machine Learning で使用される、データストアまたはパブリック URL 内のファイルの参照のコレクションを表します。

FileDataset では、データ ソースからファイル ストリームにデータを読み込むための、遅延評価される変更できない一連の操作が定義されます。 FileDataset に対してデータを配信するように要求されるまで、データはソースから読み込まれません。

FileDataset は、FileDatasetFactory クラスの from_files メソッドを使用して作成されます。

詳細については、 データセットの追加 & 登録に関する記事を参照してください。 ファイル データセットの使用を開始するには、https://aka.ms/filedataset-samplenotebook を参照してください。

FileDataset オブジェクトを初期化します。

このコンストラクターは、直接呼び出されることは想定されていません。 データセットは、 クラスを使用して FileDatasetFactory 作成することを目的としています。

継承
FileDataset

コンストラクター

FileDataset()

注釈

FileDataset は、実験の実行の入力として使用できます。 また、指定した名前を使用してワークスペースに登録し、後で、その名前で取得することもできます。

FileDataset は、このクラスで使用可能なさまざまなサブセット メソッドを呼び出すことによってサブセット化できます。 サブセット化の結果は、常に新しい FileDataset になります。

実際のデータの読み込みは、FileDataset がデータを別のストレージ メカニズム (ローカル パスにダウンロードまたはマウントされたファイルなど) に配信するように求められた場合に発生します。

メソッド

as_cache

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

Datacache_store とデータセットにマップされる DatacacheConsumptionConfig を作成します。

as_download

モードがダウンロードに設定された DatasetConsumptionConfig を作成します。

送信された実行では、データセット内のファイルがコンピューティング先のローカル パスにダウンロードされます。 ダウンロード場所は、引数の値および実行コンテキストの input_datasets フィールドから取得できます。 入力名は自動的に生成されます。 カスタムの入力名を指定する場合は、as_named_input メソッドを呼び出します。


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_download()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The download location can be retrieved from argument values
   import sys
   download_location = sys.argv[1]

   # The download location can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   download_location = Run.get_context().input_datasets['input_1']
as_hdfs

モードを hdfs に設定します。

送信された synapse 実行では、データセット内のファイルがコンピューティング先のローカルパスに変換されます。 hdfs パスは、引数の値および os 環境変数から取得できます。


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_hdfs()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The hdfs path can be retrieved from argument values
   import sys
   hdfs_path = sys.argv[1]

   # The hdfs path can also be retrieved from input_datasets of the run context.
   import os
   hdfs_path = os.environ['input_<hash>']
as_mount

モードがマウントに設定された DatasetConsumptionConfig を作成します。

送信された実行では、データセット内のファイルがコンピューティング先のローカル パスにマウントされます。 マウント ポイントは、引数の値および実行コンテキストの input_datasets フィールドから取得できます。 入力名は自動的に生成されます。 カスタムの入力名を指定する場合は、as_named_input メソッドを呼び出します。


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_mount()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The mount point can be retrieved from argument values
   import sys
   mount_point = sys.argv[1]

   # The mount point can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   mount_point = Run.get_context().input_datasets['input_1']
download

データセットによって定義されたファイル ストリームをローカル ファイルとしてダウンロードします。

file_metadata

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

メタデータ列名を指定してファイル メタデータ式を取得します。

サポートされるファイル メタデータ列は、Size、LastModifiedTime、CreationTime、Extension、CanSeek です

filter

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

データをフィルター処理して、指定された式に一致するレコードのみを残します。

hydrate

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

datacache_store で指定されている要求されたレプリカにデータセットをハイドレートします。

mount

データセットによって定義されたファイル ストリームをローカル ファイルとしてマウントするためのコンテキスト マネージャーを作成します。

random_split

データセット内のファイル ストリームを、指定されたおおよその割合で 2 つの部分にランダムに分割します。

返された最初のデータセットには、ファイル参照の合計数に対するおおよそ percentage の割合の数が含まれ、2 番目のデータセットには残りのファイル参照が含まれます。

skip

データセットの先頭から指定されたカウントまでファイル ストリームをスキップします。

take

データセットの先頭から指定されたカウントまでファイル ストリームのサンプルを取得します。

take_sample

データセット内のファイル ストリームのランダムなサンプルを、指定されたおおよその確率で取得します。

to_path

データセットによって定義された各ファイル ストリームのファイル パスの一覧を取得します。

as_cache

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

Datacache_store とデータセットにマップされる DatacacheConsumptionConfig を作成します。

as_cache(datacache_store)

パラメーター

datacache_store
DatacacheStore
必須

ハイドレートに使用するデータキャッシュストア。

戻り値

実行でデータキャッシュを具体化する方法を記述する構成オブジェクト。

の戻り値の型 :

as_download

モードがダウンロードに設定された DatasetConsumptionConfig を作成します。

送信された実行では、データセット内のファイルがコンピューティング先のローカル パスにダウンロードされます。 ダウンロード場所は、引数の値および実行コンテキストの input_datasets フィールドから取得できます。 入力名は自動的に生成されます。 カスタムの入力名を指定する場合は、as_named_input メソッドを呼び出します。


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_download()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The download location can be retrieved from argument values
   import sys
   download_location = sys.argv[1]

   # The download location can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   download_location = Run.get_context().input_datasets['input_1']
as_download(path_on_compute=None)

パラメーター

path_on_compute
str
既定値: None

データが使用できるようになるコンピューティング先のパス。

注釈

データセットが単一ファイルのパスから作成された場合、ダウンロード先は、ダウンロードされたその単一ファイルのパスになります。 それ以外の場合、ダウンロード先は、ダウンロードされたすべてのファイルを含むフォルダーのパスになります。

path_on_compute が / で始まる場合、絶対パスとして扱われます。 / で始まらない場合、作業ディレクトリを基準とした相対パスとして扱われます。 絶対パスを指定した場合は、ジョブに、そのディレクトリに書き込むためのアクセス許可があることを確認してください。

as_hdfs

モードを hdfs に設定します。

送信された synapse 実行では、データセット内のファイルがコンピューティング先のローカルパスに変換されます。 hdfs パスは、引数の値および os 環境変数から取得できます。


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_hdfs()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The hdfs path can be retrieved from argument values
   import sys
   hdfs_path = sys.argv[1]

   # The hdfs path can also be retrieved from input_datasets of the run context.
   import os
   hdfs_path = os.environ['input_<hash>']
as_hdfs()

注釈

データセットが単一ファイルのパスから作成された場合、hdfs パスは、その単一ファイルのパスになります。 それ以外の場合、hdfs パスは、マウントされたすべてのファイルを含むフォルダーのパスになります。

as_mount

モードがマウントに設定された DatasetConsumptionConfig を作成します。

送信された実行では、データセット内のファイルがコンピューティング先のローカル パスにマウントされます。 マウント ポイントは、引数の値および実行コンテキストの input_datasets フィールドから取得できます。 入力名は自動的に生成されます。 カスタムの入力名を指定する場合は、as_named_input メソッドを呼び出します。


   # Given a run submitted with dataset input like this:
   dataset_input = dataset.as_mount()
   experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))


   # Following are sample codes running in context of the submitted run:

   # The mount point can be retrieved from argument values
   import sys
   mount_point = sys.argv[1]

   # The mount point can also be retrieved from input_datasets of the run context.
   from azureml.core import Run
   mount_point = Run.get_context().input_datasets['input_1']
as_mount(path_on_compute=None)

パラメーター

path_on_compute
str
既定値: None

データが使用できるようになるコンピューティング先のパス。

注釈

データセットが単一ファイルのパスから作成された場合、マウント ポイントは、マウントされたその単一ファイルのパスになります。 それ以外の場合、マウント ポイントは、マウントされたすべてのファイルを含むフォルダーのパスになります。

path_on_compute が / で始まる場合、絶対パスとして扱われます。 / で始まらない場合、作業ディレクトリを基準とした相対パスとして扱われます。 絶対パスを指定した場合は、ジョブに、そのディレクトリに書き込むためのアクセス許可があることを確認してください。

download

データセットによって定義されたファイル ストリームをローカル ファイルとしてダウンロードします。

download(target_path=None, overwrite=False, ignore_not_found=False)

パラメーター

target_path
str
必須

ファイルのダウンロード先であるローカル ディレクトリ。 None の場合、データは一時ディレクトリにダウンロードされます。

overwrite
bool
必須

既存のファイルを上書きするかどうかを示します。 既定値は False です。 overwrite を True に設定した場合は既存のファイルが上書きされ、それ以外の場合は例外が発生します。

ignore_not_found
bool
必須

データセットで指示されたファイルの一部が見つからない場合にダウンロードに失敗するかどうかを示します。 既定値は False です。 ignore_not_found を False に設定した場合、何らかの理由でいずれかのファイルのダウンロードが失敗すると、ダウンロードは失敗します。それ以外の場合、見つからないエラーの警告がログに記録され、他のエラーの種類が検出されない限り、ダウンロードは成功します。

戻り値

ダウンロードされた各ファイルのファイル パスの配列を返します。

の戻り値の型 :

注釈

target_path が / で始まる場合、絶対パスとして扱われます。 / で始まらない場合、現在の作業ディレクトリを基準とした相対パスとして扱われます。

file_metadata

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

メタデータ列名を指定してファイル メタデータ式を取得します。

サポートされるファイル メタデータ列は、Size、LastModifiedTime、CreationTime、Extension、CanSeek です

file_metadata(col)

パラメーター

col
str
必須

列の名前

戻り値

指定された列の値を取得する式を返します。

の戻り値の型 :

<xref:azureml.dataprep.api.expression.RecordFieldExpression>

filter

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

データをフィルター処理して、指定された式に一致するレコードのみを残します。

filter(expression)

パラメーター

expression
<xref:azureml.dataprep.api.expression.Expression>
必須

評価する式。

戻り値

変更されたデータセット (未登録)。

の戻り値の型 :

注釈

式は、列の名前を使用してデータセットにインデックスを付けることによって開始されます。 さまざまな関数や演算子がサポートされており、論理演算子を使用して組み合わせることができます。 結果として得られる式は、定義されている場所ではなく、データ プルが発生したときに、各レコードに対して遅延評価されます。


   (dataset.file_metadata('Size') > 10000) & (dataset.file_metadata('CanSeek') == True)
   dataset.file_metadata('Extension').starts_with('j')

hydrate

Note

これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。

datacache_store で指定されている要求されたレプリカにデータセットをハイドレートします。

hydrate(datacache_store, replica_count=None)

パラメーター

datacache_store
DatacacheStore
必須

ハイドレートに使用するデータキャッシュストア。

replica_count
<xref:Int>, <xref:optional>
必須

ハイドレートするレプリカの数。

戻り値

実行でデータキャッシュを具体化する方法を記述する構成オブジェクト。

の戻り値の型 :

mount

データセットによって定義されたファイル ストリームをローカル ファイルとしてマウントするためのコンテキスト マネージャーを作成します。

mount(mount_point=None, **kwargs)

パラメーター

mount_point
str
必須

ファイルのマウント先であるローカル ディレクトリ。 None の場合、データは一時ディレクトリにマウントされます。これを見つけるには、MountContext.mount_point インスタンス メソッドを呼び出します。

戻り値

マウントのライフサイクルを管理するためのコンテキスト マネージャーを返します。

の戻り値の型 :

<xref:<xref:MountContext: the context manager. Upon entering the context manager>, <xref:the dataflow will bemounted to the mount_point. Upon exit>, <xref:it will remove the mount point and clean up the daemon processused to mount the dataflow.>>

注釈

マウントのライフサイクルを管理するために、コンテキスト マネージャーが返されます。 マウントするには、コンテキスト マネージャーを入力する必要があります。また、マウント解除するには、コンテキスト マネージャーを終了する必要があります。

マウントは、ネイティブ パッケージ libfuse がインストールされている UNIX または UNIX 系のオペレーティング システムでのみサポートされます。 docker コンテナー内で実行している場合、docker コンテナーは –privileged フラグを使用して起動されるか、–cap-add SYS_ADMIN –device /dev/fuse によって起動される必要があります。


   datastore = Datastore.get(workspace, 'workspaceblobstore')
   dataset = Dataset.File.from_files((datastore, 'animals/dog/year-*/*.jpg'))

   with dataset.mount() as mount_context:
       # list top level mounted files and folders in the dataset
       os.listdir(mount_context.mount_point)

   # You can also use the start and stop methods
   mount_context = dataset.mount()
   mount_context.start()  # this will mount the file streams
   mount_context.stop()  # this will unmount the file streams

target_path が / で始まる場合、絶対パスとして扱われます。 / で始まらない場合、現在の作業ディレクトリを基準とした相対パスとして扱われます。

random_split

データセット内のファイル ストリームを、指定されたおおよその割合で 2 つの部分にランダムに分割します。

返された最初のデータセットには、ファイル参照の合計数に対するおおよそ percentage の割合の数が含まれ、2 番目のデータセットには残りのファイル参照が含まれます。

random_split(percentage, seed=None)

パラメーター

percentage
float
必須

データセットを分割するおおよその割合。 これには、0.0 から 1.0 までの数値を指定する必要があります。

seed
int
必須

乱数ジェネレーターに使用する省略可能なシード。

戻り値

分割後の 2 つのデータセットを表す新しい FileDataset オブジェクトのタプルを返します。

の戻り値の型 :

skip

データセットの先頭から指定されたカウントまでファイル ストリームをスキップします。

skip(count)

パラメーター

count
int
必須

スキップするファイル ストリームの数。

戻り値

ファイル ストリームがスキップされたデータセットを表す新しい FileDataset オブジェクトを返します。

の戻り値の型 :

take

データセットの先頭から指定されたカウントまでファイル ストリームのサンプルを取得します。

take(count)

パラメーター

count
int
必須

取得するファイル ストリームの数。

戻り値

サンプリングされたデータセットを表す新しい FileDataset オブジェクトを返します。

の戻り値の型 :

take_sample

データセット内のファイル ストリームのランダムなサンプルを、指定されたおおよその確率で取得します。

take_sample(probability, seed=None)

パラメーター

probability
float
必須

サンプルに含められるファイル ストリームの確率。

seed
int
必須

乱数ジェネレーターに使用する省略可能なシード。

戻り値

サンプリングされたデータセットを表す新しい FileDataset オブジェクトを返します。

の戻り値の型 :

to_path

データセットによって定義された各ファイル ストリームのファイル パスの一覧を取得します。

to_path()

戻り値

ファイル パスの配列を返します。

の戻り値の型 :

注釈

ファイル パスは、ファイル ストリームがダウンロードまたはマウントされる場合のローカル ファイルの相対パスです。

データセットを作成するためのデータ ソースの指定方法に応じて、共通のプレフィックスがファイル パスから削除されます。 次に例を示します。


   datastore = Datastore.get(workspace, 'workspaceblobstore')
   dataset = Dataset.File.from_files((datastore, 'animals/dog/year-*/*.jpg'))
   print(dataset.to_path())

   # ['year-2018/1.jpg'
   #  'year-2018/2.jpg'
   #  'year-2019/1.jpg']

   dataset = Dataset.File.from_files('https://dprepdata.blob.core.windows.net/demo/green-small/*.csv')

   print(dataset.to_path())
   # ['/green_tripdata_2013-08.csv']