TabularDataset 类
表示要在 Azure 机器学习中使用的表格数据集。
TabularDataset 定义一系列延迟求值的不可变操作,用于将数据源中的数据加载到表格表示形式中。 在要求 TabularDataset 传送数据之前,不会从源加载数据。
TabularDataset 是使用 TabularDatasetFactory 类中的 from_delimited_files 之类的方法创建的。
有关详细信息,请参阅添加和注册数据集一文。 若要开始使用表格数据集,请参阅 https://aka.ms/tabulardataset-samplenotebook。
- 继承
-
TabularDataset
构造函数
TabularDataset()
注解
可以使用 TabularDatasetFactory 类的 from_* 方法,从 CSV、TSV、Parquet 文件或 SQL 查询创建 TabularDataset。 可以对 TabularDataset 执行创建子集操作,如拆分、跳过和筛选记录。
创建子集的结果始终是一个或多个新的 TabularDataset 对象。
还可以将 TabularDataset 转换为其他格式,如 pandas 数据帧。 当要求 TabularDataset 将数据传递到另一个存储机制(例如 Pandas 数据帧或 CSV 文件)时,将发生实际的数据加载。
TabularDataset 可用作试验运行的输入。 它还可以用指定名称注册到工作区,并在以后通过该名称进行检索。
方法
| download |
下载由数据集定义为本地文件的文件流。 |
| drop_columns |
从数据集中删除指定列。 如果删除了时序、标签或映像列,则也会删除返回数据集的相应功能。 |
| file_metadata |
注意 这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。 通过指定元数据列名称获取文件元数据表达式。 支持的文件元数据列为 Size、LastModifiedTime、CreationTime、Extension 和 CanSeek |
| filter |
注意 这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。 筛选数据,仅保留与指定表达式匹配的记录。 |
| get_profile |
注意 这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。 从为工作区中的此数据集或相同数据集提交的最新配置文件运行中获取数据配置文件。 |
| get_profile_runs |
注意 这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。 返回与工作区中的此数据集或相同数据集关联的以前的配置文件运行。 |
| keep_columns |
保留指定列并从数据集中删除所有其他列。 如果删除了时序、标签或映像列,则也会删除返回数据集的相应功能。 |
| mount |
创建一个上下文管理器,用于将数据集定义的文件系统流装载为本地文件。 |
| partition_by |
将复制分区的数据并输出到指定的目标。 从带分区格式的输出数据路径创建数据集,在提供名称的情况下注册数据集,并为带分区的新数据路径返回数据集
|
| random_split |
按指定百分比随机并大致地将数据集中的记录拆分为两个部分。 第一个数据集包含总记录的约 |
| 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 数据帧。 |
| to_torchvision |
根据标签特征将带标签的数据集转换为 Torchvision 数据集。 |
| with_timestamp_columns |
为数据集定义时间戳列。 |
download
下载由数据集定义为本地文件的文件流。
download(target_path=None, overwrite=False, **kwargs)
参数
返回
返回下载的每个文件的文件路径数组。
返回类型
drop_columns
从数据集中删除指定列。
如果删除了时序、标签或映像列,则也会删除返回数据集的相应功能。
drop_columns(columns)
参数
返回
返回已删除指定列的新 TabularDataset 对象。
返回类型
file_metadata
注意
这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
通过指定元数据列名称获取文件元数据表达式。
支持的文件元数据列为 Size、LastModifiedTime、CreationTime、Extension 和 CanSeek
file_metadata(col)
参数
返回
返回一个表达式,该表达式会检索指定列中的值。
返回类型
filter
注意
这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
筛选数据,仅保留与指定表达式匹配的记录。
filter(expression)
参数
返回
已修改的数据集(未注册)。
返回类型
注解
通过使用列的名称对数据集编制索引来启动表达式。 它们支持各种函数和运算符,可以使用逻辑运算符进行组合。 当数据提取时,将对每个记录进行惰性计算,而不会对其定义。
dataset['label'].contains('dog')
dataset['image_details']['format'] == 'jpg'
dataset.file_metadata('Size') > 10000
get_profile
注意
这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
从为工作区中的此数据集或相同数据集提交的最新配置文件运行中获取数据配置文件。
get_profile(workspace=None)
参数
- workspace
- 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
- Workspace
已提交配置文件运行的工作区。 默认为此数据集的工作区。 如果数据集不与工作区关联,则为必需。 有关工作区的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace。
返回
azureml.core.Run 类型的迭代器对象。
返回类型
keep_columns
保留指定列并从数据集中删除所有其他列。
如果删除了时序、标签或映像列,则也会删除返回数据集的相应功能。
keep_columns(columns, validate=False)
参数
返回
返回仅保留指定列的新 TabularDataset 对象。
返回类型
mount
创建一个上下文管理器,用于将数据集定义的文件系统流装载为本地文件。
mount(mount_point=None, **kwargs)
参数
返回
返回用于管理装载生命周期的上下文管理器。
返回类型
注解
将返回上下文管理器来管理装载的生命周期。 若要装载,需要输入上下文管理器,若要卸载,请退出上下文管理器。
仅在安装了本地包 libfuse 的 Unix 或 Unix 类操作系统上支持装载。 如果在 docker 容器中运行,则 docker 容器必须以 –privileged 标志开始,或者以 – cap-add SYS_ADMIN – device/dev/fuse 开始。
datastore = Datastore.get(workspace, 'workspaceblobstore')
dataset = Dataset.Tabular.from_delimited_files((datastore, 'weather/2018/*.csv'))
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
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)
参数
必需,数据帧 Parquet 数据将上传到的数据存储路径。 将在目标路径下生成 guid 文件夹,以避免冲突。
- partition_as_file_dataset
可选,指示是否返回 filedataset。 默认值为 False。
返回
保存或注册的数据集。
返回类型
random_split
按指定百分比随机并大致地将数据集中的记录拆分为两个部分。
第一个数据集包含总记录的约 percentage,第二个数据集包含剩余记录。
random_split(percentage, seed=None)
参数
返回
返回表示拆分后的两个数据集的新 TabularDataset 对象的元组。
返回类型
skip
按指定的计数从数据集的顶部起跳过记录。
skip(count)
参数
返回
返回表示已跳过记录的数据集的新 TabularDataset 对象。
返回类型
submit_profile_run
注意
这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
提交试验运行以计算数据配置文件。
数据配置文件提供有关数据的有用信息(如列类型、缺少值等),对理解输入数据,识别异常和缺少值非常有用。
submit_profile_run(compute_target, experiment, cache_datastore_name=None)
参数
- compute_target
- Union[str, ComputeTarget]
要运行配置文件计算试验的计算目标。 指定“local”以使用本地计算。 有关计算目标的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.computetarget。
- experiment
- Experiment
试验对象。 有关试验的详细信息,请参阅 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.experiment.experiment。
返回
DatasetProfileRun 类类型的对象。
返回类型
take
按指定的计数从数据集的顶部起获取记录示例。
take(count)
参数
返回
返回表示采样数据集的新 TabularDataset 对象。
返回类型
take_sample
按指定的概率大致获取数据集中记录的随机示例。
take_sample(probability, seed=None)
参数
返回
返回表示采样数据集的新 TabularDataset 对象。
返回类型
time_after
在指定的开始时间之后使用时间戳列筛选 TabularDataset。
time_after(start_time, include_boundary=True, validate=True)
参数
返回
具有新筛选的数据集的 TabularDataset。
返回类型
time_before
在指定的结束时间之前使用时间戳列筛选 TabularDataset。
time_before(end_time, include_boundary=True, validate=True)
参数
返回
具有新筛选的数据集的 TabularDataset。
返回类型
time_between
在指定开始时间和结束时间之间筛选 TabularDataset。
time_between(start_time, end_time, include_boundary=True, validate=True)
参数
返回
具有新筛选的数据集的 TabularDataset。
返回类型
time_recent
筛选 TabularDataset,以仅包含指定持续时间(量)的最近数据。
time_recent(time_delta, include_boundary=True, validate=True)
参数
返回
具有新筛选的数据集的 TabularDataset。
返回类型
to_csv_files
将当前数据集转换为包含 CSV 文件的 FileDataset。
生成的数据集将包含一个或多个 CSV 文件,每个文件对应于当前数据集中的一个数据分区。 在下载或读取这些文件之前,这些文件不会具体化。
to_csv_files(separator=',')
参数
返回
返回新的 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(file_handling_option=<FileHandlingOption.NONE: 2>, target_path=None, overwrite_download=False)
参数
- file_handling_option
- FileHandlingOption
此参数仅适用于具有标签特征的 TabularDatasets,否则将被忽略。 有效选项为 FileHandlingOption.NONE、FileHandlingOption.DOWNLOAD(在本地下载文件)或 FileHandlingOption.MOUNT(将文件装载到本地路径)。 默认值为 NONE。
- target_path
- str
此参数仅适用于具有标签特征的 TabularDatasets。 target_path 是将映像文件下载或装载到的位置。 如果将 file_handling_option 设置为 DOWNLOAD 或 MOUNT 且不提供 target_path,则将使用临时目录。
- overwrite_download
- bool
仅当 file_handling_option 为 DOWNLOAD 时,此参数才适用,指示是否覆盖现有文件。 默认值为 False。 如果 overwrite_download 设置为 True,则覆盖现有文件;否则将引发异常。
返回
返回 pandas 数据帧。
返回类型
to_parquet_files
将当前数据集转换为包含 Parquet 文件的 FileDataset。
生成的数据集将包含一个或多个 Parquet 文件,每个文件对应于当前数据集中的一个数据分区。 在下载或读取这些文件之前,这些文件不会具体化。
to_parquet_files()
返回
返回新的 FileDataset 对象,其中包含一组包含此数据集中的数据的 Parquet 文件。
返回类型
to_spark_dataframe
to_torchvision
根据标签特征将带标签的数据集转换为 Torchvision 数据集。
to_torchvision()
返回
根据标签特征的类型返回自定义 Torchvision 数据集。
返回类型
with_timestamp_columns
为数据集定义时间戳列。
with_timestamp_columns(timestamp=None, partition_timestamp=None, validate=False, **kwargs)
参数
返回
返回已定义时间戳列的新 TabularDataset。
返回类型
注解
方法定义要用作时间戳的列。 数据集上的时间戳列可以将数据视为时间序列数据,并启用其他功能。 如果数据集指定了 timestamp (used to be referred as fine_grain_timestamp) 和 partition_timestamp (used to be referred as coarse grain timestamp),则这两个列应表示同一时间线。
属性
image
label
timestamp_columns
反馈
提交和查看相关反馈