次の方法で共有


TabularDatasetFactory クラス

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

TabularDatasetは、このクラスのfrom_* メソッド (たとえば、メソッド from_delimited_files) を使用して作成されます。

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

コンストラクター

TabularDatasetFactory()

メソッド

from_delimited_files

区切りファイル (e.g. 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

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

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

register_pandas_dataframe

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

register_spark_dataframe

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

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

from_delimited_files

区切りファイル (e.g. 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
必須

ソース ファイルへのパス。単一値または URL 文字列のリスト (http[s]|abfs[s]|wasb[s])、 DataPath オブジェクト、または Datastore と相対パスのタプルを指定できます。 パスの一覧には、URL とデータストアの両方を一緒に含めることはできません。

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
必須
str

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

header
必須

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

partition_format
必須
str

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

support_multi_line
必須

既定では (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
必須

空のフィールド値を空の文字列として読み込むかどうかを指定します。 既定値 (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
必須

ソース ファイルへのパス。単一値または URL 文字列のリスト (http[s]|abfs[s]|wasb[s])、 DataPath オブジェクト、または Datastore と相対パスのタプルを指定できます。 パスの一覧には、URL とデータストアの両方を一緒に含めることはできません。

validate
必須

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

include_path
必須

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

set_column_types
必須

列データ型を設定するディクショナリ。キーは列名、値は DataType

partition_format
必須
str

パスのパーティション形式を指定します。 デフォルトは「なし」です。 各パスのパーティション情報は、指定された形式に基づいて列に抽出されます。 書式パーツ '{column_name}' は文字列列を作成し、'{column_name:yyyy/MM/dd/HH/mm/ss}' は datetime 列を作成します。ここで、datetime 型の年、月、日、時、分、秒を抽出するために 'yyyy'、'MM'、'dd'、'hh'、'mm'、'ss' が使用されます。 形式は、最初のパーティション キーの位置からファイル パスの末尾まで開始する必要があります。 たとえば、パス '../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
必須

ソース ファイルへのパス。単一値または URL 文字列のリスト (http[s]|abfs[s]|wasb[s])、 DataPath オブジェクト、または Datastore と相対パスのタプルを指定できます。 パスの一覧には、URL とデータストアの両方を一緒に含めることはできません。

validate
必須

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

include_path
必須

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

set_column_types
必須

列データ型を設定するディクショナリ。キーは列名、値は DataType

partition_format
必須
str

パスのパーティション形式を指定します。 デフォルトは「なし」です。 各パスのパーティション情報は、指定された形式に基づいて列に抽出されます。 書式パーツ '{column_name}' は文字列列を作成し、'{column_name:yyyy/MM/dd/HH/mm/ss}' は datetime 列を作成します。ここで、datetime 型の年、月、日、時、分、秒を抽出するために 'yyyy'、'MM'、'dd'、'hh'、'mm'、'ss' が使用されます。 形式は、最初のパーティション キーの位置からファイル パスの末尾まで開始する必要があります。 たとえば、パス '../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

これは実験的な方法であり、いつでも変更される可能性があります。 詳細については、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
必須
str

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

description
必須
str

省略可。 データセットのテキストの説明。 デフォルトは「なし」です。

tags
必須

省略可。 データセットを提供するキー値タグのディクショナリ。 デフォルトは「なし」です。

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
必須
str

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

description
必須
int

省略可。 データセットのテキストの説明。 デフォルトは「なし」です。

tags
必須

省略可。 データセットを提供するキー値タグのディクショナリ。 デフォルトは「なし」です。

show_progress
必須

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

row_group_size
必須

省略可。 Parquet ファイルの書き込み時に使用する行グループの最大サイズ。 デフォルトは「なし」です。

make_target_path_unique
必須

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

戻り値

説明

登録されたデータセット。

register_spark_dataframe

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

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

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

パラメーター

名前 説明
dataframe
必須

アップロードするメモリ データフレーム内で必須。

target
必須

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

name
必須
str

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

description
必須
str

省略可。 データセットのテキストの説明。 デフォルトは「なし」です。

tags
必須

省略可。 データセットを提供するキー値タグのディクショナリ。 デフォルトは「なし」です。

show_progress
必須

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

戻り値

説明

登録されたデータセット。