TabularDatasetFactory クラス

Azure Machine Learning の表形式データセットを作成するメソッドが含まれています。

TabularDataset は、from_delimited_files メソッドなど、このクラスの from_* メソッドを使用して作成されます。

表形式データセットの操作の詳細については、ノートブック https://aka.ms/tabulardataset-samplenotebook を参照してください。

継承
builtins.object
TabularDatasetFactory

コンストラクター

TabularDatasetFactory()

メソッド

from_delimited_files

区切りファイル (CSV や TSV など) 内の表形式データを表す TabularDataset を作成します。

from_json_lines_files

JSON Lines ファイル (http://jsonlines.org/) 内の表形式データを表す TabularDataset を作成します。

from_parquet_files

Parquet ファイル内の表形式データを表す TabularDataset を作成します。

from_sql_query

SQL データベース内の表形式データを表す TabularDataset を作成します。

register_dask_dataframe

Note

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

dask データフレームからデータセットを作成します。

register_pandas_dataframe

pandas データフレームからデータセットを作成します。

register_spark_dataframe

Note

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

spark データフレームからデータセットを作成します。

from_delimited_files

区切りファイル (CSV や TSV など) 内の表形式データを表す TabularDataset を作成します。

static from_delimited_files(path, validate=True, include_path=False, infer_column_types=True, set_column_types=None, separator=',', header=True, partition_format=None, support_multi_line=False, empty_as_string=False, encoding='utf8')

パラメーター

path
Union[str, list[str], DataPath, list[DataPath], (Datastore, str), list[(Datastore, str)]]
必須

ソース ファイルへのパス。URL 文字列の単一値またはリスト (http[s]|abfs[s]|wasb[s]) DataPath 、object、または タプルと Datastore 相対パスを指定できます。 パスのリストに URL とデータストアを同時に含めることはできないので注意してください。

validate
bool
必須

返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 検証を無効にするには、"infer_column_types" も False に設定される必要があります。

include_path
bool
必須

パス情報をデータセットの列として保持するブール値。 既定値は False です。 これは、複数のファイルを読み取り、特定のレコードがどのファイルから生成されたかを把握したい場合や、ファイル パスに有用な情報を保持したい場合に便利です。

infer_column_types
bool
必須

列のデータ型を推論するブール値。 既定値は True です。 型の推定を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 現在の型の推定では、最初の 200 行のみがプルされます。 データに複数の型の値が含まれている場合は、set_column_types 引数を使用して、必要な型をオーバーライドとして指定することをお勧めします。 set_column_types については、コード サンプルの「注釈」セクションをご確認ください。

set_column_types
dict[str, DataType]
必須

列のデータ型を設定するための辞書。キーは列名、値は DataType です。

separator
str
必須

列を分割するために使用する区切り記号。

header
bool または PromoteHeadersBehavior
必須

ファイルから読み取るときに列ヘッダーをどのように昇格するかを制御します。 同じヘッダーを持つすべてのファイルの既定値は True です。 header=False の場合、ファイルはヘッダーなしとして読み取られます。 PromoteHeadersBehavior の列挙値を使用して、その他のオプションを指定できます。

partition_format
str
必須

パスのパーティション形式を指定します。 既定値は None です。 各パスのパーティション情報は、指定された形式に基づいて列に抽出されます。 形式の '{column_name}' の部分では文字列の列が、'{column_name:yyyy/MM/dd/HH/mm/ss}' では datetime の列が作成されます。ここで、'yyyy'、'MM'、'dd'、'HH'、'mm'、'ss' は datetime 型の年、月、日、時、分、秒の抽出に使用されます。 形式は、最初のパーティション キーの位置から始まり、ファイル パスの末尾までになります。 たとえば、部署名と日時でパーティション分割されるパス '../Accounts/2019/01/01/data.csv' がある場合、partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv' によって、値 'Accounts' を持つ文字列の列 'Department' と、値 '2019-01-01' を持つ datetime 列 'PartitionDate' が作成されます。

support_multi_line
bool
必須

既定 (support_multi_line=False) では、すべての改行 (引用符で囲まれたフィールド値内のものも含む) がレコード区切りとして解釈されます。 この方法でデータを読み込むと、複数の CPU コアでの並列実行で速度と最適化が向上します。 ただし、フィールド値が不整合なレコードが警告なしで多数生成される可能性があります。 引用符で囲まれた改行が区切りファイルに含まれていることがわかっている場合は、これを True に設定する必要があります。

この csv ファイルを例として指定すると、support_multi_line に基づいてデータが異なる方法で読み取られます。

A,B,C A1,B1,C1 A2,"B 2",C2


   from azureml.core import Dataset, Datastore
   from azureml.data.datapath import DataPath

   # default behavior: support_multi_line=False
   dataset = Dataset.Tabular.from_delimited_files(path=datastore_path)
   print(dataset.to_pandas_dataframe())
   #      A   B     C
   #  0  A1  B1    C1
   #  1  A2   B  None
   #  2  2"  C2  None

   # to handle quoted line breaks
   dataset = Dataset.Tabular.from_delimited_files(path=datastore_path,
                                                  support_multi_line=True)
   print(dataset.to_pandas_dataframe())
   #      A       B   C
   #  0  A1      B1  C1
   #  1  A2  B\r\n2  C2
empty_as_string
bool
必須

空のフィールド値を空の文字列として読み込むかどうかを指定します。 既定値 (False) の場合、空のフィールド値を null 値として読み取ります。 この値を True として渡すと、空のフィールド値が空の文字列として読み取られます。 値が数値または datetime に変換される場合、これは無効です (空の値は null 値に変換されるため)。

encoding
str
必須

ファイル エンコードを指定します。 サポートされているエンコードは、"utf8"、"iso88591"、"latin1"、"ascii"、"utf16"、"utf32"、"utf8bom"、"windows1252" です

戻り値

TabularDataset オブジェクトを返します。

の戻り値の型 :

注釈

from_delimited_files は、区切りファイルから表形式表現にデータを読み込む操作を定義する、TabularDataset クラスのオブジェクトを作成します。

Azure Machine Learning でデータにアクセスできるようにするには、 パス で指定された区切りファイルが、BLOB、ADLS Gen1、ADLS Gen2 のパブリック Web URL または URL の内側または背後に配置 Datastore されている必要があります。 ユーザーの AAD トークンは、次のいずれかの関数を直接呼び出す場合、ノートブックまたはローカル Python プログラムで使用されます。FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_filesコンピューティング ターゲットの ID は、データ アクセス認証のために Experiment.submit によって送信されたジョブで使用されます。 詳細情報: https://aka.ms/data-access

列のデータ型は、既定では区切りファイル内のデータから推論されます。 set_column_types を指定すると、返される TabularDataset の指定した列のデータ型がオーバーライドされます。


   from azureml.core import Dataset, Datastore

   # create tabular dataset from a single file in datastore
   datastore = Datastore.get(workspace, 'workspaceblobstore')
   tabular_dataset_1 = Dataset.Tabular.from_delimited_files(path=(datastore,'weather/2018/11.csv'))

   # create tabular dataset from a single directory in datastore
   datastore = Datastore.get(workspace, 'workspaceblobstore')
   tabular_dataset_2 = Dataset.Tabular.from_delimited_files(path=(datastore,'weather/'))

   # create tabular dataset from all csv files in the directory
   tabular_dataset_3 = Dataset.Tabular.from_delimited_files(path=(datastore,'weather/**/*.csv'))

   # create tabular dataset from multiple paths
   data_paths = [(datastore, 'weather/2018/11.csv'), (datastore, 'weather/2018/12.csv')]
   tabular_dataset_4 = Dataset.Tabular.from_delimited_files(path=data_paths)

   # create tabular dataset from url
   tabular_dataset_5 = Dataset.Tabular.from_delimited_files(path='https://url/weather/2018/12.csv')

   # use `set_column_types` to set column data types
   from azureml.data import DataType
   data_types = {
       'ID': DataType.to_string(),
       'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
       'Count': DataType.to_long(),
       'Latitude': DataType.to_float(),
       'Found': DataType.to_bool()
   }
   web_path = [
       'https://url/weather/2018/11.csv',
       'https://url/weather/2018/12.csv'
   ]
   tabular = Dataset.Tabular.from_delimited_files(path=web_path, set_column_types=data_types)

from_json_lines_files

JSON Lines ファイル (http://jsonlines.org/) 内の表形式データを表す TabularDataset を作成します。

static from_json_lines_files(path, validate=True, include_path=False, set_column_types=None, partition_format=None, invalid_lines='error', encoding='utf8')

パラメーター

path
Union[str, list[str], DataPath, list[DataPath], (Datastore, str), list[(Datastore, str)]]
必須

ソース ファイルへのパス。URL 文字列の単一値またはリスト (http[s]|abfs[s]|wasb[s]) DataPath 、object、または タプルと Datastore 相対パスを指定できます。 パスのリストに URL とデータストアを同時に含めることはできないので注意してください。

validate
bool
必須

返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。

include_path
bool
必須

パス情報をデータセットの列として保持するブール値。 既定値は False です。 これは、複数のファイルを読み取り、特定のレコードがどのファイルから生成されたかを把握したい場合や、ファイル パスに有用な情報を保持したい場合に便利です。

set_column_types
dict[str, DataType]
必須

列のデータ型を設定するための辞書。キーは列名、値は DataType です

partition_format
str
必須

パスのパーティション形式を指定します。 既定値は None です。 各パスのパーティション情報は、指定された形式に基づいて列に抽出されます。 形式の '{column_name}' の部分では文字列の列が、'{column_name:yyyy/MM/dd/HH/mm/ss}' では datetime の列が作成されます。ここで、'yyyy'、'MM'、'dd'、'HH'、'mm'、'ss' は datetime 型の年、月、日、時、分、秒の抽出に使用されます。 形式は、最初のパーティション キーの位置から始まり、ファイル パスの末尾までになります。 たとえば、部署名と日時でパーティション分割されるパス '../Accounts/2019/01/01/data.jsonl' がある場合、partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.jsonl' によって、値 'Accounts' を持つ文字列の列 'Department' と、値 '2019-01-01' を持つ datetime 列 'PartitionDate' が作成されます。

invalid_lines
str
必須

無効な JSON の行を処理する方法。 サポートされている値は、'error' と 'drop' です。

encoding
str
必須

ファイル エンコードを指定します。 サポートされているエンコードは、"utf8"、"iso88591"、"latin1"、"ascii"、"utf16"、"utf32"、"utf8bom"、"windows1252" です

戻り値

TabularDataset オブジェクトを返します。

の戻り値の型 :

注釈

from_json_lines_files は、JSON Lines ファイルから表形式表現にデータを読み込む操作を定義する、TabularDataset クラスのオブジェクトを作成します。

Azure Machine Learning でデータにアクセスできるようにするには、 パス で指定された JSON Lines ファイルが、BLOB、ADLS Gen1、ADLS Gen2 のパブリック Web URL または URL の内側または背後に配置 Datastore されている必要があります。 ユーザーの AAD トークンは、次のいずれかの関数を直接呼び出す場合、ノートブックまたはローカル Python プログラムで使用されます。FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_filesコンピューティング ターゲットの ID は、データ アクセス認証のために Experiment.submit によって送信されたジョブで使用されます。 詳細情報: https://aka.ms/data-access

列のデータ型は、JSON Lines ファイルに保存されているデータ型から読み込まれます。 set_column_types を指定すると、返される TabularDataset の指定した列のデータ型がオーバーライドされます。


   from azureml.core import Dataset, Datastore

   # create tabular dataset from a single file in datastore
   datastore = Datastore.get(workspace, 'workspaceblobstore')
   tabular_dataset_1 = Dataset.Tabular.from_json_lines_files(path=(datastore,'weather/2018/11.jsonl'))

   # create tabular dataset from a single directory in datastore
   datastore = Datastore.get(workspace, 'workspaceblobstore')
   tabular_dataset_2 = Dataset.Tabular.from_json_lines_files(path=(datastore,'weather/'))

   # create tabular dataset from all jsonl files in the directory
   tabular_dataset_3 = Dataset.Tabular.from_json_lines_files(path=(datastore,'weather/**/*.jsonl'))

   # create tabular dataset from multiple paths
   data_paths = [(datastore, 'weather/2018/11.jsonl'), (datastore, 'weather/2018/12.jsonl')]
   tabular_dataset_4 = Dataset.Tabular.from_json_lines_files(path=data_paths)

   # create tabular dataset from url
   tabular_dataset_5 = Dataset.Tabular.from_json_lines_files(path='https://url/weather/2018/12.jsonl')

   # use `set_column_types` to set column data types
   from azureml.data import DataType
   data_types = {
       'ID': DataType.to_string(),
       'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
       'Count': DataType.to_long(),
       'Latitude': DataType.to_float(),
       'Found': DataType.to_bool()
   }
   web_path = [
       'https://url/weather/2018/11.jsonl',
       'https://url/weather/2018/12.jsonl'
   ]
   tabular = Dataset.Tabular.from_json_lines_files(path=web_path, set_column_types=data_types)

from_parquet_files

Parquet ファイル内の表形式データを表す TabularDataset を作成します。

static from_parquet_files(path, validate=True, include_path=False, set_column_types=None, partition_format=None)

パラメーター

path
Union[str, list[str], DataPath, list[DataPath], (Datastore, str), list[(Datastore, str)]]
必須

ソース ファイルへのパス。URL 文字列の単一値またはリスト (http[s]|abfs[s]|wasb[s]) DataPath 、object、または タプルと Datastore 相対パスを指定できます。 パスのリストに URL とデータストアを同時に含めることはできないので注意してください。

validate
bool
必須

返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。

include_path
bool
必須

パス情報をデータセットの列として保持するブール値。 既定値は False です。 これは、複数のファイルを読み取り、特定のレコードがどのファイルから生成されたかを把握したい場合や、ファイル パスに有用な情報を保持したい場合に便利です。

set_column_types
dict[str, DataType]
必須

列のデータ型を設定するための辞書。キーは列名、値は DataType です。

partition_format
str
必須

パスのパーティション形式を指定します。 既定値は None です。 各パスのパーティション情報は、指定された形式に基づいて列に抽出されます。 形式の '{column_name}' の部分では文字列の列が、'{column_name:yyyy/MM/dd/HH/mm/ss}' では datetime の列が作成されます。ここで、'yyyy'、'MM'、'dd'、'HH'、'mm'、'ss' は datetime 型の年、月、日、時、分、秒の抽出に使用されます。 形式は、最初のパーティション キーの位置から始まり、ファイル パスの末尾までになります。 たとえば、部署名と日時でパーティション分割されるパス '../Accounts/2019/01/01/data.parquet' がある場合、partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.parquet' によって、値 'Accounts' を持つ文字列の列 'Department' と、値 '2019-01-01' を持つ datetime 列 'PartitionDate' が作成されます。

戻り値

TabularDataset オブジェクトを返します。

の戻り値の型 :

注釈

from_parquet_files は、Parquet ファイルから表形式表現にデータを読み込む操作を定義する、TabularDataset クラスのオブジェクトを作成します。

Azure Machine Learning でデータにアクセスできるようにするには、 パス で指定された Parquet ファイルが、BLOB、ADLS Gen1、ADLS Gen2 のパブリック Web URL または URL の内側または背後に配置 Datastore されている必要があります。 ユーザーの AAD トークンは、次のいずれかの関数を直接呼び出す場合、ノートブックまたはローカル Python プログラムで使用されます。FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_filesコンピューティング ターゲットの ID は、データ アクセス認証のために Experiment.submit によって送信されたジョブで使用されます。 詳細情報: https://aka.ms/data-access

列のデータ型は、Parquet ファイルに保存されているデータ型から読み込まれます。 set_column_types を指定すると、返される TabularDataset の指定した列のデータ型がオーバーライドされます。


   # create tabular dataset from a single file in datastore
   datastore = Datastore.get(workspace, 'workspaceblobstore')
   tabular_dataset_1 = Dataset.Tabular.from_parquet_files(path=(datastore,'weather/2018/11.parquet'))

   # create tabular dataset from a single directory in datastore
   datastore = Datastore.get(workspace, 'workspaceblobstore')
   tabular_dataset_2 = Dataset.Tabular.from_parquet_files(path=(datastore,'weather/'))

   # create tabular dataset from all parquet files in the directory
   tabular_dataset_3 = Dataset.Tabular.from_parquet_files(path=(datastore,'weather/**/*.parquet'))

   # create tabular dataset from multiple paths
   data_paths = [(datastore, 'weather/2018/11.parquet'), (datastore, 'weather/2018/12.parquet')]
   tabular_dataset_4 = Dataset.Tabular.from_parquet_files(path=data_paths)

   # create tabular dataset from url
   tabular_dataset_5 = Dataset.Tabular.from_parquet_files(path='https://url/weather/2018/12.parquet')

   # use `set_column_types` to set column data types
   from azureml.data import DataType
   data_types = {
       'ID': DataType.to_string(),
       'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
       'Count': DataType.to_long(),
       'Latitude': DataType.to_float(),
       'Found': DataType.to_bool()
   }
   web_path = [
       'https://url/weather/2018/11.parquet',
       'https://url/weather/2018/12.parquet'
   ]
   tabular = Dataset.Tabular.from_parquet_files(path=web_path, set_column_types=data_types)

from_sql_query

SQL データベース内の表形式データを表す TabularDataset を作成します。

static from_sql_query(query, validate=True, set_column_types=None, query_timeout=30)

パラメーター

query
Union[DataPath, (Datastore, str)]
必須

SQL の種別を持つデータストアとクエリ。

validate
bool
必須

返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。

set_column_types
dict[str, DataType]
必須

列のデータ型を設定するための辞書。キーは列名、値は DataType です。

query_timeout
必須

コマンド実行の試行を終了してエラーを生成するまでの待機時間 (秒単位) を設定します。 既定値は 30 秒です。

戻り値

TabularDataset オブジェクトを返します。

の戻り値の型 :

注釈

from_sql_query は、SQL データベースから表形式表現にデータを読み込む操作を定義する、TabularDataset クラスのオブジェクトを作成します。 現時点では、MSSQLDataSource のみがサポートされています。

Azure Machine Learning によってデータにアクセスできるようにするには、query で指定された SQL データベースが、Datastore 内に配置されている必要があります。また、データストアの種類は SQL の種別である必要があります。

列のデータ型は SQL クエリ結果のデータ型から読み取られます。 set_column_types を指定すると、返される TabularDataset の指定した列のデータ型がオーバーライドされます。


   from azureml.core import Dataset, Datastore
   from azureml.data.datapath import DataPath

   # create tabular dataset from a SQL database in datastore
   datastore = Datastore.get(workspace, 'mssql')
   query = DataPath(datastore, 'SELECT * FROM my_table')
   tabular = Dataset.Tabular.from_sql_query(query, query_timeout=10)
   df = tabular.to_pandas_dataframe()

   # use `set_column_types` to set column data types
   from azureml.data import DataType
   data_types = {
       'ID': DataType.to_string(),
       'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
       'Count': DataType.to_long(),
       'Latitude': DataType.to_float(),
       'Found': DataType.to_bool()
   }
   tabular = Dataset.Tabular.from_sql_query(query, set_column_types=data_types)

register_dask_dataframe

Note

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

dask データフレームからデータセットを作成します。

static register_dask_dataframe(dataframe, target, name, description=None, tags=None, show_progress=True)

パラメーター

dataframe
<xref:dask.dataframe.core.DataFrame>
必須

必須。アップロードされる dask データフレーム。

target
Union[DataPath, Datastore, tuple(Datastore, str)]
必須

必須。データフレームの parquet データのアップロード先となるデータストアのパス。 競合を避けるため、ターゲット パスの下に guid フォルダーが生成されます。

name
str
必須

必須。登録済みデータセットの名前。

description
str
必須

任意。 データセットのテキストの説明。 既定値は None です。

tags
dict[str, str]
必須

任意。 データセットを提供するキー値タグの辞書。 既定値は None です。

show_progress
bool
必須

任意。コンソールにアップロードの進行状況を表示するかどうかを示します。 既定値は True です。

戻り値

登録済みデータセット。

の戻り値の型 :

register_pandas_dataframe

pandas データフレームからデータセットを作成します。

static register_pandas_dataframe(dataframe, target, name, description=None, tags=None, show_progress=True, row_group_size=None, make_target_path_unique=True)

パラメーター

dataframe
DataFrame
必須

必須。アップロードされるインメモリ データフレーム。

target
Union[DataPath, Datastore, tuple(Datastore, str)]
必須

必須。データフレームの parquet データのアップロード先となるデータストアのパス。 競合を避けるため、ターゲット パスの下に guid フォルダーが生成されます。

name
str
必須

必須。登録済みデータセットの名前。

description
int
必須

任意。 データセットのテキストの説明。 既定値は None です。

tags
dict[str, str]
必須

任意。 データセットを提供するキー値タグの辞書。 既定値は None です。

show_progress
bool
必須

任意。コンソールにアップロードの進行状況を表示するかどうかを示します。 既定値は True です。

row_group_size
必須

省略可能。 Parquet ファイルの書き込み時に使用する行グループの最大サイズ。 既定値は None です。

make_target_path_unique
必須

省略可能。 は、一意のサブフォルダーをターゲットに作成する必要があるかどうかを示します。 既定値は True です。

戻り値

登録済みデータセット。

の戻り値の型 :

register_spark_dataframe

Note

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

spark データフレームからデータセットを作成します。

static register_spark_dataframe(dataframe, target, name, description=None, tags=None, show_progress=True)

パラメーター

dataframe
DataFrame
必須

必須。アップロードされるインメモリ データフレーム。

target
Union[DataPath, Datastore, tuple(Datastore, str)]
必須

必須。データフレームの parquet データのアップロード先となるデータストアのパス。 競合を避けるため、ターゲット パスの下に guid フォルダーが生成されます。

name
str
必須

必須。登録済みデータセットの名前。

description
str
必須

任意。 データセットのテキストの説明。 既定値は None です。

tags
dict[str, str]
必須

任意。 データセットを提供するキー値タグの辞書。 既定値は None です。

show_progress
bool
必須

任意。コンソールにアップロードの進行状況を表示するかどうかを示します。 既定値は True です。

戻り値

登録済みデータセット。

の戻り値の型 :