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 メソッドを呼び出します。
|
as_hdfs |
モードを hdfs に設定します。 送信された synapse 実行では、データセット内のファイルがコンピューティング先のローカルパスに変換されます。 hdfs パスは、引数の値および os 環境変数から取得できます。
|
as_mount |
モードがマウントに設定された DatasetConsumptionConfig を作成します。 送信された実行では、データセット内のファイルがコンピューティング先のローカル パスにマウントされます。 マウント ポイントは、引数の値および実行コンテキストの input_datasets フィールドから取得できます。 入力名は自動的に生成されます。 カスタムの入力名を指定する場合は、as_named_input メソッドを呼び出します。
|
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 つの部分にランダムに分割します。 返された最初のデータセットには、ファイル参照の合計数に対するおおよそ |
skip |
データセットの先頭から指定されたカウントまでファイル ストリームをスキップします。 |
take |
データセットの先頭から指定されたカウントまでファイル ストリームのサンプルを取得します。 |
take_sample |
データセット内のファイル ストリームのランダムなサンプルを、指定されたおおよその確率で取得します。 |
to_path |
データセットによって定義された各ファイル ストリームのファイル パスの一覧を取得します。 |
as_cache
Note
これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。
Datacache_store とデータセットにマップされる DatacacheConsumptionConfig を作成します。
as_cache(datacache_store)
パラメーター
名前 | 説明 |
---|---|
datacache_store
必須
|
ハイドレートに使用するデータキャッシュストア。 |
戻り値
型 | 説明 |
---|---|
実行でデータキャッシュを具体化する方法を記述する構成オブジェクト。 |
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
|
データが使用できるようになるコンピューティング先のパス。 規定値: 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
|
データが使用できるようになるコンピューティング先のパス。 規定値: None
|
注釈
データセットが単一ファイルのパスから作成された場合、マウント ポイントは、マウントされたその単一ファイルのパスになります。 それ以外の場合、マウント ポイントは、マウントされたすべてのファイルを含むフォルダーのパスになります。
path_on_compute が / で始まる場合、絶対パスとして扱われます。 / で始まらない場合、作業ディレクトリを基準とした相対パスとして扱われます。 絶対パスを指定した場合は、ジョブに、そのディレクトリに書き込むためのアクセス許可があることを確認してください。
download
データセットによって定義されたファイル ストリームをローカル ファイルとしてダウンロードします。
download(target_path=None, overwrite=False, ignore_not_found=False)
パラメーター
名前 | 説明 |
---|---|
target_path
必須
|
ファイルのダウンロード先であるローカル ディレクトリ。 None の場合、データは一時ディレクトリにダウンロードされます。 |
overwrite
必須
|
既存のファイルを上書きするかどうかを示します。 既定値は False です。 overwrite を True に設定した場合は既存のファイルが上書きされ、それ以外の場合は例外が発生します。 |
ignore_not_found
必須
|
データセットで指示されたファイルの一部が見つからない場合にダウンロードに失敗するかどうかを示します。 既定値は False です。 ignore_not_found を False に設定した場合、何らかの理由でいずれかのファイルのダウンロードが失敗すると、ダウンロードは失敗します。それ以外の場合、見つからないエラーの警告がログに記録され、他のエラーの種類が検出されない限り、ダウンロードは成功します。 |
戻り値
型 | 説明 |
---|---|
ダウンロードされた各ファイルのファイル パスの配列を返します。 |
注釈
target_path が / で始まる場合、絶対パスとして扱われます。 / で始まらない場合、現在の作業ディレクトリを基準とした相対パスとして扱われます。
file_metadata
Note
これは試験的なメソッドであり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。
メタデータ列名を指定してファイル メタデータ式を取得します。
サポートされるファイル メタデータ列は、Size、LastModifiedTime、CreationTime、Extension、CanSeek です
file_metadata(col)
パラメーター
名前 | 説明 |
---|---|
col
必須
|
列の名前 |
戻り値
型 | 説明 |
---|---|
<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
必須
|
ハイドレートに使用するデータキャッシュストア。 |
replica_count
必須
|
<xref:Int>, <xref:optional>
ハイドレートするレプリカの数。 |
戻り値
型 | 説明 |
---|---|
実行でデータキャッシュを具体化する方法を記述する構成オブジェクト。 |
mount
データセットによって定義されたファイル ストリームをローカル ファイルとしてマウントするためのコンテキスト マネージャーを作成します。
mount(mount_point=None, **kwargs)
パラメーター
名前 | 説明 |
---|---|
mount_point
必須
|
ファイルのマウント先であるローカル ディレクトリ。 None の場合、データは一時ディレクトリにマウントされます。これを見つけるには、MountContext.mount_point インスタンス メソッドを呼び出します。 |
戻り値
型 | 説明 |
---|---|
<xref:MountContext>: <xref:the> <xref:context> <xref:manager.> <xref:Upon> <xref:entering> <xref:the> <xref:context> <xref:manager>, <xref:the> <xref:dataflow> <xref:will> <xref:be> <xref:mounted> <xref:to> <xref:the> <xref:mount_point.> <xref:Upon> exit, <xref:it> <xref:will> <xref:remove> <xref:the> mount <xref:point> <xref:and> clean <xref:up> <xref:the> <xref:daemon> <xref:process> <xref:used> <xref:to> mount <xref:the> <xref: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
必須
|
データセットを分割するおおよその割合。 これには、0.0 から 1.0 までの数値を指定する必要があります。 |
seed
必須
|
乱数ジェネレーターに使用する省略可能なシード。 |
戻り値
型 | 説明 |
---|---|
分割後の 2 つのデータセットを表す新しい FileDataset オブジェクトのタプルを返します。 |
skip
データセットの先頭から指定されたカウントまでファイル ストリームをスキップします。
skip(count)
パラメーター
名前 | 説明 |
---|---|
count
必須
|
スキップするファイル ストリームの数。 |
戻り値
型 | 説明 |
---|---|
ファイル ストリームがスキップされたデータセットを表す新しい FileDataset オブジェクトを返します。 |
take
データセットの先頭から指定されたカウントまでファイル ストリームのサンプルを取得します。
take(count)
パラメーター
名前 | 説明 |
---|---|
count
必須
|
取得するファイル ストリームの数。 |
戻り値
型 | 説明 |
---|---|
サンプリングされたデータセットを表す新しい FileDataset オブジェクトを返します。 |
take_sample
データセット内のファイル ストリームのランダムなサンプルを、指定されたおおよその確率で取得します。
take_sample(probability, seed=None)
パラメーター
名前 | 説明 |
---|---|
probability
必須
|
サンプルに含められるファイル ストリームの確率。 |
seed
必須
|
乱数ジェネレーターに使用する省略可能なシード。 |
戻り値
型 | 説明 |
---|---|
サンプリングされたデータセットを表す新しい 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']