TabularDatasetFactory クラス
Azure Machine Learning の表形式データセットを作成するメソッドが含まれています。
TabularDataset は、from_delimited_files メソッドなど、このクラスの from_*
メソッドを使用して作成されます。
表形式データセットの操作の詳細については、ノートブック https://aka.ms/tabulardataset-samplenotebook を参照してください。
- 継承
-
builtins.objectTabularDatasetFactory
コンストラクター
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
必須
|
|
validate
必須
|
返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 検証を無効にするには、"infer_column_types" も False に設定される必要があります。 |
include_path
必須
|
パス情報をデータセットの列として保持するブール値。 既定値は False です。 これは、複数のファイルを読み取り、特定のレコードがどのファイルから生成されたかを把握したい場合や、ファイル パスに有用な情報を保持したい場合に便利です。 |
infer_column_types
必須
|
列のデータ型を推論するブール値。 既定値は True です。 型の推定を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 現在の型の推定では、最初の 200 行のみがプルされます。 データに複数の型の値が含まれている場合は、set_column_types 引数を使用して、必要な型をオーバーライドとして指定することをお勧めします。 set_column_types については、コード サンプルの「注釈」セクションをご確認ください。 |
set_column_types
必須
|
列のデータ型を設定するための辞書。キーは列名、値は DataType です。 |
separator
必須
|
列を分割するために使用する区切り記号。 |
header
必須
|
ファイルから読み取るときに列ヘッダーをどのように昇格するかを制御します。 同じヘッダーを持つすべてのファイルの既定値は True です。 header=False の場合、ファイルはヘッダーなしとして読み取られます。 PromoteHeadersBehavior の列挙値を使用して、その他のオプションを指定できます。 |
partition_format
必須
|
パスのパーティション形式を指定します。 既定値は 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
必須
|
既定 (support_multi_line=False) では、すべての改行 (引用符で囲まれたフィールド値内のものも含む) がレコード区切りとして解釈されます。 この方法でデータを読み込むと、複数の CPU コアでの並列実行で速度と最適化が向上します。 ただし、フィールド値が不整合なレコードが警告なしで多数生成される可能性があります。 引用符で囲まれた改行が区切りファイルに含まれていることがわかっている場合は、これを True に設定する必要があります。 この csv ファイルを例として指定すると、support_multi_line に基づいてデータが異なる方法で読み取られます。 A,B,C A1,B1,C1 A2,"B 2",C2
|
empty_as_string
必須
|
空のフィールド値を空の文字列として読み込むかどうかを指定します。 既定値 (False) の場合、空のフィールド値を null 値として読み取ります。 この値を True として渡すと、空のフィールド値が空の文字列として読み取られます。 値が数値または datetime に変換される場合、これは無効です (空の値は null 値に変換されるため)。 |
encoding
必須
|
ファイル エンコードを指定します。 サポートされているエンコードは、"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
必須
|
|
validate
必須
|
返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 |
include_path
必須
|
パス情報をデータセットの列として保持するブール値。 既定値は False です。 これは、複数のファイルを読み取り、特定のレコードがどのファイルから生成されたかを把握したい場合や、ファイル パスに有用な情報を保持したい場合に便利です。 |
set_column_types
必須
|
列のデータ型を設定するための辞書。キーは列名、値は DataType です |
partition_format
必須
|
パスのパーティション形式を指定します。 既定値は 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
必須
|
無効な JSON の行を処理する方法。 サポートされている値は、'error' と 'drop' です。 |
encoding
必須
|
ファイル エンコードを指定します。 サポートされているエンコードは、"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
必須
|
|
validate
必須
|
返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 |
include_path
必須
|
パス情報をデータセットの列として保持するブール値。 既定値は False です。 これは、複数のファイルを読み取り、特定のレコードがどのファイルから生成されたかを把握したい場合や、ファイル パスに有用な情報を保持したい場合に便利です。 |
set_column_types
必須
|
列のデータ型を設定するための辞書。キーは列名、値は DataType です。 |
partition_format
必須
|
パスのパーティション形式を指定します。 既定値は 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
必須
|
SQL の種別を持つデータストアとクエリ。 |
validate
必須
|
返されたデータセットからデータを読み込むことができるかどうかを検証するブール値。 既定値は True です。 検証を行うには、現在のコンピューティングからデータ ソースにアクセスできる必要があります。 |
set_column_types
必須
|
列のデータ型を設定するための辞書。キーは列名、値は 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
必須
|
必須。データフレームの parquet データのアップロード先となるデータストアのパス。 競合を避けるため、ターゲット パスの下に guid フォルダーが生成されます。 |
name
必須
|
必須。登録済みデータセットの名前。 |
description
必須
|
任意。 データセットのテキストの説明。 既定値は None です。 |
tags
必須
|
任意。 データセットを提供するキー値タグの辞書。 既定値は None です。 |
show_progress
必須
|
任意。コンソールにアップロードの進行状況を表示するかどうかを示します。 既定値は 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
必須
|
必須。アップロードされるインメモリ データフレーム。 |
target
必須
|
必須。データフレームの parquet データのアップロード先となるデータストアのパス。 競合を避けるため、ターゲット パスの下に guid フォルダーが生成されます。 |
name
必須
|
必須。登録済みデータセットの名前。 |
description
必須
|
任意。 データセットのテキストの説明。 既定値は None です。 |
tags
必須
|
任意。 データセットを提供するキー値タグの辞書。 既定値は None です。 |
show_progress
必須
|
任意。コンソールにアップロードの進行状況を表示するかどうかを示します。 既定値は 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
必須
|
必須。アップロードされるインメモリ データフレーム。 |
target
必須
|
必須。データフレームの parquet データのアップロード先となるデータストアのパス。 競合を避けるため、ターゲット パスの下に guid フォルダーが生成されます。 |
name
必須
|
必須。登録済みデータセットの名前。 |
description
必須
|
任意。 データセットのテキストの説明。 既定値は None です。 |
tags
必須
|
任意。 データセットを提供するキー値タグの辞書。 既定値は None です。 |
show_progress
必須
|
任意。コンソールにアップロードの進行状況を表示するかどうかを示します。 既定値は True です。 |
戻り値
型 | 説明 |
---|---|
登録済みデータセット。 |