TabularDataset 类

表示在 Azure 机器学习中使用的表格数据集。

TabularDataset 定义一系列延迟评估的不可变作,以将数据从数据源加载到表格表示形式。 在要求 TabularDataset 提供数据之前,不会从源加载数据。

使用类似于类的方法from_delimited_filesTabularDatasetFactory创建 TabularDataset。

有关详细信息,请参阅 “添加和注册数据集”一文。 若要开始使用表格数据集,请参阅 https://aka.ms/tabulardataset-samplenotebook

初始化 TabularDataset 对象。

不应直接调用此构造函数。 数据集旨在使用 TabularDatasetFactory 类创建。

构造函数

TabularDataset()

注解

可以使用类的方法from_*从 CSV、TSV、Parquet 文件或 SQL 查询TabularDatasetFactory创建 TabularDataset。 可以对 TabularDataset 执行子设置作,例如拆分、跳过和筛选记录。 子设置的结果始终为一个或多个新的 TabularDataset 对象。

还可以将 TabularDataset 转换为其他格式,例如 pandas 数据帧。 当要求 TabularDataset 将数据传递到另一个存储机制(例如 Pandas 数据帧或 CSV 文件)时,会发生实际数据加载。

TabularDataset 可用作试验运行的输入。 该名称也可以注册到具有指定名称的工作区,并稍后通过该名称进行检索。

方法

download

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

将数据集定义的文件流下载到本地路径。

drop_columns

从数据集中删除指定的列。

如果删除了时间列,则也会删除返回数据集的相应功能。

filter

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

筛选数据,仅保留与指定表达式匹配的记录。

get_profile

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

从为工作区中的此数据集或同一数据集提交的最新配置文件运行中获取数据配置文件。

get_profile_runs

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

返回与工作区中与此数据集或相同数据集关联的上一个配置文件运行。

keep_columns

保留指定的列并删除数据集中的所有其他列。

如果删除了时间列,则也会删除返回数据集的相应功能。

mount

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

创建上下文管理器,用于装载数据集定义的文件流作为本地文件。

partition_by

分区数据将复制并输出到目标指定的目标。

使用分区格式从输出的数据路径创建数据集,如果提供名称,请注册数据集,返回包含分区的新数据路径的数据集


   ds = Dataset.get_by_name('test') # indexed by country, state, partition_date

   # #1: call partition_by locally
   new_ds = ds.partition_by(name="repartitioned_ds", partition_keys=['country'],
               target=DataPath(datastore, "repartition"))
   partition_keys = newds.partition_keys # ['country']

   # new_ds can be passed to PRS as input dataset
random_split

将数据集中的记录随机拆分为两个部分,大致按指定的百分比进行拆分。

第一个数据集包含大约 percentage 总记录和剩余记录的第二个数据集。

skip

按指定计数跳过数据集顶部的记录。

submit_profile_run

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

提交试验运行以计算数据配置文件。

数据配置文件对于了解输入数据、识别异常值和缺失值非常有用,方法是提供有关列类型、缺失值等数据的有用信息。

take

按指定的计数从数据集顶部获取记录示例。

take_sample

按指定概率大致获取数据集中记录的随机样本。

time_after

筛选 TabularDataset,其中包含指定开始时间后的时间戳列。

time_before

使用指定结束时间前的时间戳列筛选 TabularDataset。

time_between

在指定的开始时间和结束时间之间筛选 TabularDataset。

time_recent

筛选 TabularDataset 以仅包含最近数据的指定持续时间(量)。

to_csv_files

将当前数据集转换为包含 CSV 文件的 FileDataset。

生成的数据集将包含一个或多个 CSV 文件,每个文件对应于当前数据集中的数据分区。 这些文件在下载或读取之前不会具体化。

to_dask_dataframe

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

返回一个 Dask 数据帧,该帧可以延迟读取数据集中的数据。

to_pandas_dataframe

将所有记录从数据集加载到 pandas 数据帧中。

to_parquet_files

将当前数据集转换为包含 Parquet 文件的 FileDataset。

生成的数据集将包含一个或多个 Parquet 文件,每个文件对应于当前数据集中的数据分区。 这些文件在下载或读取之前不会具体化。

to_spark_dataframe

将所有记录从数据集加载到 Spark 数据帧中。

with_timestamp_columns

定义数据集的时间戳列。

download

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

将数据集定义的文件流下载到本地路径。

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

参数

名称 说明
stream_column
必需
str

要下载的流列。

target_path
必需
str

要下载文件的本地目录。 如果为 None,数据将下载到临时目录中。

overwrite
必需

指示是否覆盖现有文件。 默认值为 False。 如果覆盖设置为 True,则会覆盖现有文件;否则将引发异常。

ignore_not_found
必需

指示如果未找到数据集指向的某些文件,则指示下载是否失败。 默认值为 True。 如果任何文件下载失败,如果ignore_not_found设置为 False,则下载将失败;否则,只要没有遇到其他错误类型,就会记录一个战争,因为未找到错误,而 dowload 将成功。

返回

类型 说明

返回下载的每个文件的文件路径数组。

drop_columns

从数据集中删除指定的列。

如果删除了时间列,则也会删除返回数据集的相应功能。

drop_columns(columns)

参数

名称 说明
columns
必需

要删除的列的名称或名称列表。

返回

类型 说明

返回一个新的 TabularDataset 对象,该对象删除了指定的列。

filter

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

筛选数据,仅保留与指定表达式匹配的记录。

filter(expression)

参数

名称 说明
expression
必需
any

要计算的表达式。

返回

类型 说明

修改后的数据集(未注册)。

注解

表达式首先使用列名称为数据集编制索引。 它们支持各种函数和运算符,可以使用逻辑运算符进行组合。 当数据拉取发生而不是定义数据时,将针对每个记录对生成的表达式进行延迟计算。


   dataset['myColumn'] > dataset['columnToCompareAgainst']
   dataset['myColumn'].starts_with('prefix')

get_profile

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

从为工作区中的此数据集或同一数据集提交的最新配置文件运行中获取数据配置文件。

get_profile(workspace=None)

参数

名称 说明
workspace
必需

提交配置文件运行的工作区。 默认为此数据集的工作区。 如果数据集未关联到工作区,则为必需。 有关工作区的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace

返回

类型 说明

DatasetProfile 类型的最新配置文件运行的结果。

get_profile_runs

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

返回与工作区中与此数据集或相同数据集关联的上一个配置文件运行。

get_profile_runs(workspace=None)

参数

名称 说明
workspace
必需

提交配置文件运行的工作区。 默认为此数据集的工作区。 如果数据集未关联到工作区,则为必需。 有关工作区的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace

返回

类型 说明

azureml.core.Run 类型的 iterator 对象。

keep_columns

保留指定的列并删除数据集中的所有其他列。

如果删除了时间列,则也会删除返回数据集的相应功能。

keep_columns(columns, validate=False)

参数

名称 说明
columns
必需

要保留的列的名称或名称列表。

validate
必需

指示是否验证是否可以从返回的数据集加载数据。 默认值为 False。 验证要求可从当前计算访问数据源。

返回

类型 说明

返回一个新的 TabularDataset 对象,只保留指定的列。

mount

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

创建上下文管理器,用于装载数据集定义的文件流作为本地文件。

mount(stream_column, mount_point=None)

参数

名称 说明
stream_column
必需
str

要装载的流列。

mount_point
必需
str

要将文件装载到的本地目录。 如果为 None,则数据将装载到临时目录中,可以通过调用 MountContext.mount_point 实例方法找到该目录。

返回

类型 说明
<xref:azureml.dataprep.fuse.daemon.MountContext>

返回用于管理装载生命周期的上下文管理器。

partition_by

分区数据将复制并输出到目标指定的目标。

使用分区格式从输出的数据路径创建数据集,如果提供名称,请注册数据集,返回包含分区的新数据路径的数据集


   ds = Dataset.get_by_name('test') # indexed by country, state, partition_date

   # #1: call partition_by locally
   new_ds = ds.partition_by(name="repartitioned_ds", partition_keys=['country'],
               target=DataPath(datastore, "repartition"))
   partition_keys = newds.partition_keys # ['country']

   # new_ds can be passed to PRS as input dataset
partition_by(partition_keys, target, name=None, show_progress=True, partition_as_file_dataset=False)

参数

名称 说明
partition_keys
必需

必需,分区键

target
必需

必需,数据帧 parquet 数据将上传到的数据存储路径。 将在目标路径下生成 guid 文件夹,以避免冲突。

name
必需
str

可选,即注册名称。

show_progress
必需

可选,指示是否在控制台中显示上传的进度。 默认值为 True。

partition_as_file_dataset
必需

可选,指示是否返回 filedataset。 默认值为 False。

返回

类型 说明

已保存或已注册的数据集。

random_split

将数据集中的记录随机拆分为两个部分,大致按指定的百分比进行拆分。

第一个数据集包含大约 percentage 总记录和剩余记录的第二个数据集。

random_split(percentage, seed=None)

参数

名称 说明
percentage
必需

要按其拆分数据集的大致百分比。 这必须是介于 0.0 和 1.0 之间的数字。

seed
必需
int

用于随机生成器的可选种子。

返回

类型 说明

返回表示拆分后两个数据集的新 TabularDataset 对象的元组。

skip

按指定计数跳过数据集顶部的记录。

skip(count)

参数

名称 说明
count
必需
int

要跳过的记录数。

返回

类型 说明

返回一个新的 TabularDataset 对象,该对象代表跳过记录的数据集。

submit_profile_run

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

提交试验运行以计算数据配置文件。

数据配置文件对于了解输入数据、识别异常值和缺失值非常有用,方法是提供有关列类型、缺失值等数据的有用信息。

submit_profile_run(compute_target, experiment, cache_datastore_name=None)

参数

名称 说明
compute_target
必需

要运行配置文件计算试验的计算目标。 指定“local”以使用本地计算。 有关计算目标的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.computetarget

experiment
必需

试验对象。 有关试验的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.experiment.experiment

cache_datastore_name
必需
str

用于存储配置文件缓存的数据存储的名称(如果 None)将使用默认数据存储

返回

类型 说明

DatasetProfileRun 类类型的对象。

take

按指定的计数从数据集顶部获取记录示例。

take(count)

参数

名称 说明
count
必需
int

要获取的记录数。

返回

类型 说明

返回表示采样数据集的新 TabularDataset 对象。

take_sample

按指定概率大致获取数据集中记录的随机样本。

take_sample(probability, seed=None)

参数

名称 说明
probability
必需

样本中包含记录的概率。

seed
必需
int

用于随机生成器的可选种子。

返回

类型 说明

返回表示采样数据集的新 TabularDataset 对象。

time_after

筛选 TabularDataset,其中包含指定开始时间后的时间戳列。

time_after(start_time, include_boundary=True, validate=True)

参数

名称 说明
start_time
必需

筛选数据的下限。

include_boundary
必需

指示是否应包含与边界时间 (start_time) 关联的行。

validate
必需

指示是否验证数据集中是否存在指定的列。 默认值为 True。 验证要求可从当前计算访问数据源。

返回

类型 说明

包含新筛选数据集的 TabularDataset。

time_before

使用指定结束时间前的时间戳列筛选 TabularDataset。

time_before(end_time, include_boundary=True, validate=True)

参数

名称 说明
end_time
必需

筛选数据的上限。

include_boundary
必需

指示是否应包含与边界时间 (end_time) 关联的行。

validate
必需

指示是否验证数据集中是否存在指定的列。 默认值为 True。 验证要求可从当前计算访问数据源。

返回

类型 说明

包含新筛选数据集的 TabularDataset。

time_between

在指定的开始时间和结束时间之间筛选 TabularDataset。

time_between(start_time, end_time, include_boundary=True, validate=True)

参数

名称 说明
start_time
必需

筛选数据的下限。

end_time
必需

筛选数据的上限。

include_boundary
必需

指示是否应包含与边界时间(start_endend_time)关联的行。

validate
必需

指示是否验证数据集中是否存在指定的列。 默认值为 True。 验证要求可从当前计算访问数据源。

返回

类型 说明

包含新筛选数据集的 TabularDataset。

time_recent

筛选 TabularDataset 以仅包含最近数据的指定持续时间(量)。

time_recent(time_delta, include_boundary=True, validate=True)

参数

名称 说明
time_delta
必需

要检索的最近数据的持续时间(量)。

include_boundary
必需

指示是否应包含与边界时间 (time_delta) 关联的行。

validate
必需

指示是否验证数据集中是否存在指定的列。 默认值为 True。 验证要求可从当前计算访问数据源。

返回

类型 说明

包含新筛选数据集的 TabularDataset。

to_csv_files

将当前数据集转换为包含 CSV 文件的 FileDataset。

生成的数据集将包含一个或多个 CSV 文件,每个文件对应于当前数据集中的数据分区。 这些文件在下载或读取之前不会具体化。

to_csv_files(separator=',')

参数

名称 说明
separator
必需
str

用于分隔生成的文件中的值的分隔符。

返回

类型 说明

返回一个新的 FileDataset 对象,其中包含一组 CSV 文件,其中包含此数据集中的数据。

to_dask_dataframe

注释

这是一种实验性方法,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

返回一个 Dask 数据帧,该帧可以延迟读取数据集中的数据。

to_dask_dataframe(sample_size=10000, dtypes=None, on_error='null', out_of_range_datetime='null')

参数

名称 说明
sample_size
必需

要读取以确定架构和类型的记录数。

dtypes
必需

指定预期列及其 dtype 的可选听写。 如果提供,则忽略sample_size

on_error
必需

如何处理数据集中的任何错误值,例如分析值时由错误生成的错误值。 有效值为“null”,将其替换为 null;和“fail”将导致异常。

out_of_range_datetime
必需

如何处理 Pandas 支持的范围之外的日期/时间值。 有效值为“null”,将其替换为 null;和“fail”将导致异常。

返回

类型 说明

dask.dataframe.core.DataFrame

to_pandas_dataframe

将所有记录从数据集加载到 pandas 数据帧中。

to_pandas_dataframe(on_error='null', out_of_range_datetime='null')

参数

名称 说明
on_error
必需

如何处理数据集中的任何错误值,例如分析值时由错误生成的错误值。 有效值为“null”,将其替换为 null;和“fail”将导致异常。

out_of_range_datetime
必需

如何处理 Pandas 支持的范围之外的日期/时间值。 有效值为“null”,将其替换为 null;和“fail”将导致异常。

返回

类型 说明

返回 pandas 数据帧。

to_parquet_files

将当前数据集转换为包含 Parquet 文件的 FileDataset。

生成的数据集将包含一个或多个 Parquet 文件,每个文件对应于当前数据集中的数据分区。 这些文件在下载或读取之前不会具体化。

to_parquet_files()

返回

类型 说明

返回一个新的 FileDataset 对象,其中包含此数据集中的数据的一组 Parquet 文件。

to_spark_dataframe

将所有记录从数据集加载到 Spark 数据帧中。

to_spark_dataframe()

返回

类型 说明

返回 Spark 数据帧。

with_timestamp_columns

定义数据集的时间戳列。

with_timestamp_columns(timestamp=None, partition_timestamp=None, validate=False, **kwargs)

参数

名称 说明
timestamp
必需
str

列的名称(用于称为fine_grain_timestamp)(可选)。 默认值为 None(clear)。

partition_timestamp
必需
str

列的名称partition_timestamp(用于称为粗粒度时间戳)(可选)。 默认值为 None(clear)。

validate
必需

指示是否验证数据集中是否存在指定的列。 默认值为 False。 验证要求可从当前计算访问数据源。

返回

类型 说明

返回一个新的 TabularDataset,其中包含定义的时间戳列。

注解

该方法定义要用作时间戳的列。 数据集上的时间戳列使可以将数据视为时序数据并启用其他功能。 数据集同时指定 timestamp (used to be referred as fine_grain_timestamp)partition_timestamp (used to be referred as coarse grain timestamp) ,这两列应表示相同的时间线。

属性

timestamp_columns

返回时间戳列。

返回

类型 说明
(str, str)

时间戳(用于称为fine_grain_timestamp)和partition_timestamp(用于称为数据集的粗粒度时间戳)的列名。