MLTable 类
表示 MLTable。
MLTable 定义一系列延迟计算的不可变操作,用于从数据源加载数据。 在要求 MLTable 提供数据之前,不会从源加载数据。
初始化新的 MLTable。
不应直接调用此构造函数。 MLTable 旨在使用 load创建。
- 继承
-
builtins.objectMLTable
构造函数
MLTable()
方法
convert_column_types |
添加转换步骤以将指定列转换为其各自指定的新类型。
|
drop_columns |
添加转换步骤以从数据集中删除给定列。 如果给定空列表、元组或集,则不会删除任何内容。 重复列将引发 UserErrorException。 尝试删除MLTable.traits.timestamp_column或MLTable.traits.index_columns中的列将引发 UserErrorException。 |
extract_columns_from_partition_format |
添加转换步骤以使用每个路径的分区信息,并根据指定的分区格式将它们提取到列中。 格式部分“{column_name}”创建字符串列,“{column_name:yyyy/MM/dd/HH/mm/ss}”创建日期/时间列,其中“yyyy”、“MM”、“dd”、“HH”、“mm”和“ss”分别用于提取日期/时间类型的年、月、日、小时、分钟和秒。 格式应从文件路径结束之前的第一个分区键位置开始。 例如,给定路径“/Accounts/2019/01/01/data.csv”,其中分区按部门名称和时间划分, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv'将创建值为“Accounts”的字符串列“Department”和值为“2019-01-01”的 datetime 列“PartitionDate”。 |
filter |
筛选数据,仅保留与指定表达式匹配的记录。 |
get_partition_count |
返回与此 MLTable 关联的数据基础的数据分区数。 |
keep_columns |
添加转换步骤以保留指定的列,并从数据集中删除所有其他列。 如果给定空列表、元组或集,则不会删除任何内容。 重复列将引发 UserErrorException。 如果未显式保留 MLTable.traits.timestamp_column 中的列或MLTable.traits.index_columns中的列,则 UserErrorException 为 raiesion。 |
random_split |
将此 MLTable 随机拆分为两个 MLTable,一个具有大约原始 MLTable 数据的“百分比”%,另一个将其余 (1-“%”%) 。 |
save |
将此 MLTable 另存为 MLTable YAML 文件 & 其给定目录路径。 如果未提供 path ,则 默认为当前工作目录。 如果 路径 不存在,则创建它。 如果 path 为远程路径,则基础数据存储必须已存在。 如果 path 是本地目录,& 不是绝对目录,则将其设置为绝对目录。 如果 path 指向文件,则会引发 UserErrorException。 如果 path 是一个目录路径,该路径已包含一个或多个文件正在保存 (包括 MLTable YAML 文件) 和 覆盖 设置为 False 或“fail”,则会引发 UserErrorException。 如果 path 为远程路径,则相对于从) 加载 MLTable 的目录,未作为并置路径 (文件路径的任何本地文件路径都将引发 UserErrorException。 共置 控制如何将关联路径保存到 路径。 如果为 True,则文件将作为相对 文件 路径与 MLTable YAML 文件一起复制到路径。 否则,不会复制关联的文件,远程路径将保持给定状态,本地文件路径与路径重定向相对(如果需要)。 请注意,False 可能会导致不推荐使用非共置 MLTable YAML 文件,此外,如果 路径 为远程,则会导致 UserErrorException,因为远程 URI 不支持相对路径重定向。 请注意,如果 MLTable 是使用本地相对路径的 from_paths () 或 from_read_delimited_files () 等方法以编程方式创建的,则假定 MLTable 目录路径为当前工作目录。 将新的 MLTable & 关联的数据文件保存到具有现有 MLTable 文件的目录时,请注意 & 保存新文件之前未清除现有文件的关联数据文件。 保存新文件后,现有数据文件可能会保留,尤其是在现有数据文件的名称与任何新数据文件不匹配时。 如果新的 MLTable 在其路径下包含模式指示符,这可能会无意中通过将现有数据文件与新的 MLTable 相关联来更改 MLTable。 如果此 MLTable 中的文件路径指向 路径 中的现有文件,但具有不同的 URI,则如果覆盖为“失败”或“跳过”,则不会 (覆盖现有文件,即跳过) 。 |
select_partitions |
添加转换步骤以选择分区。 |
show |
检索此 MLTable 的第一个 计数 行作为 Pandas 数据帧。 |
skip |
添加转换步骤以跳过此 MLTable 的第一个 计数 行。 |
take |
添加转换步骤以选择此 MLTable 的第一个 计数 行。 |
take_random_sample |
添加一个转换步骤,以随机选择此 MLTable 的每一行,并具有 概率 。 概率必须在 [0,1] 范围内。 可以选择设置随机种子。 |
to_pandas_dataframe |
将 MLTable 文件中指定的路径中的所有记录加载到 Pandas 数据帧中。 |
validate |
验证是否可以加载此 MLTable 的数据,要求从当前计算访问 MLTable 的数据源 () 。 |
convert_column_types
添加转换步骤以将指定列转换为其各自指定的新类型。
from mltable import DataType
data_types = {
'ID': DataType.to_string(),
'Date': DataType.to_datetime('%d/%m/%Y %I:%M:%S %p'),
'Count': DataType.to_int(),
'Latitude': DataType.to_float(),
'Found': DataType.to_bool(),
'Stream': DataType.to_stream()
}
convert_column_types(column_types)
参数
名称 | 说明 |
---|---|
column_types
必需
|
列字典:用户希望转换的类型 |
返回
类型 | 说明 |
---|---|
添加了转换步骤的 MLTable |
drop_columns
添加转换步骤以从数据集中删除给定列。 如果给定空列表、元组或集,则不会删除任何内容。 重复列将引发 UserErrorException。
尝试删除MLTable.traits.timestamp_column或MLTable.traits.index_columns中的列将引发 UserErrorException。
drop_columns(columns: str | List[str] | Tuple[str] | Set[str])
参数
名称 | 说明 |
---|---|
columns
必需
|
要从此 MLTable 中删除的列 () |
返回
类型 | 说明 |
---|---|
添加了转换步骤的 MLTable |
extract_columns_from_partition_format
添加转换步骤以使用每个路径的分区信息,并根据指定的分区格式将它们提取到列中。
格式部分“{column_name}”创建字符串列,“{column_name:yyyy/MM/dd/HH/mm/ss}”创建日期/时间列,其中“yyyy”、“MM”、“dd”、“HH”、“mm”和“ss”分别用于提取日期/时间类型的年、月、日、小时、分钟和秒。
格式应从文件路径结束之前的第一个分区键位置开始。 例如,给定路径“/Accounts/2019/01/01/data.csv”,其中分区按部门名称和时间划分, partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv'将创建值为“Accounts”的字符串列“Department”和值为“2019-01-01”的 datetime 列“PartitionDate”。
extract_columns_from_partition_format(partition_format)
参数
名称 | 说明 |
---|---|
partition_format
必需
|
用于将数据提取到列中的分区格式 |
返回
类型 | 说明 |
---|---|
分区格式设置为给定格式的 MLTable |
filter
筛选数据,仅保留与指定表达式匹配的记录。
filter(expression)
参数
名称 | 说明 |
---|---|
expression
必需
|
要计算的表达式。 |
返回
类型 | 说明 |
---|---|
筛选后的 MLTable |
注解
表达式是通过使用列名为 mltable 编制索引来启动的。 它们支持各种函数和运算符,可以使用逻辑运算符进行组合。 当数据提取时,将对每个记录进行惰性计算,而不会对其定义。
filtered_mltable = mltable.filter('feature_1 == "5" and target > "0.5)"')
filtered_mltable = mltable.filter('col("FBI Code") == "11"')
get_partition_count
keep_columns
添加转换步骤以保留指定的列,并从数据集中删除所有其他列。 如果给定空列表、元组或集,则不会删除任何内容。 重复列将引发 UserErrorException。
如果未显式保留 MLTable.traits.timestamp_column 中的列或MLTable.traits.index_columns中的列,则 UserErrorException 为 raiesion。
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
参数
名称 | 说明 |
---|---|
columns
必需
|
此 MLTable 中要保留的列 () |
返回
类型 | 说明 |
---|---|
添加了转换步骤的 MLTable |
random_split
将此 MLTable 随机拆分为两个 MLTable,一个具有大约原始 MLTable 数据的“百分比”%,另一个将其余 (1-“%”%) 。
random_split(percent=0.5, seed=None)
参数
名称 | 说明 |
---|---|
percent
必需
|
要拆分的 MLTable 的百分比 |
seed
必需
|
可选随机种子 |
返回
类型 | 说明 |
---|---|
两个 MLTable,其中此 MLTable 的数据按“百分比”在它们之间拆分 |
save
将此 MLTable 另存为 MLTable YAML 文件 & 其给定目录路径。
如果未提供 path ,则 默认为当前工作目录。 如果 路径 不存在,则创建它。 如果 path 为远程路径,则基础数据存储必须已存在。 如果 path 是本地目录,& 不是绝对目录,则将其设置为绝对目录。
如果 path 指向文件,则会引发 UserErrorException。 如果 path 是一个目录路径,该路径已包含一个或多个文件正在保存 (包括 MLTable YAML 文件) 和 覆盖 设置为 False 或“fail”,则会引发 UserErrorException。 如果 path 为远程路径,则相对于从) 加载 MLTable 的目录,未作为并置路径 (文件路径的任何本地文件路径都将引发 UserErrorException。
共置 控制如何将关联路径保存到 路径。 如果为 True,则文件将作为相对 文件 路径与 MLTable YAML 文件一起复制到路径。 否则,不会复制关联的文件,远程路径将保持给定状态,本地文件路径与路径重定向相对(如果需要)。 请注意,False 可能会导致不推荐使用非共置 MLTable YAML 文件,此外,如果 路径 为远程,则会导致 UserErrorException,因为远程 URI 不支持相对路径重定向。
请注意,如果 MLTable 是使用本地相对路径的 from_paths () 或 from_read_delimited_files () 等方法以编程方式创建的,则假定 MLTable 目录路径为当前工作目录。
将新的 MLTable & 关联的数据文件保存到具有现有 MLTable 文件的目录时,请注意 & 保存新文件之前未清除现有文件的关联数据文件。 保存新文件后,现有数据文件可能会保留,尤其是在现有数据文件的名称与任何新数据文件不匹配时。 如果新的 MLTable 在其路径下包含模式指示符,这可能会无意中通过将现有数据文件与新的 MLTable 相关联来更改 MLTable。
如果此 MLTable 中的文件路径指向 路径 中的现有文件,但具有不同的 URI,则如果覆盖为“失败”或“跳过”,则不会 (覆盖现有文件,即跳过) 。
save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)
参数
名称 | 说明 |
---|---|
path
必需
|
要保存到的目录路径,默认为当前工作目录 |
colocated
必需
|
如果为 True,则将此 MLTable 中 路径 下的本地 & 远程文件路径的副本保存为相对路径。 否则,不会进行文件复制,并且远程文件路径将按给定方式保存到已保存的 MLTable YAML 文件,本地文件路径作为具有路径重定向的相对文件路径保存。 如果 path 为远程 & 此 MLTable 包含本地文件路径,则将引发 UserErrorException。 |
overwrite
必需
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
如何处理 路径 下已存在的 MLTable YAML 文件和关联的文件。 选项包括“overwrite” (或 True) 替换任何现有文件、“fail” (或 False) (如果文件已存在)或“跳过”以保留现有文件。 还可以将 <xref:mltable.MLTableSaveOverwriteOptions>设置为 。 |
show_progress
必需
|
显示将进度复制到 stdout |
if_err_remove_files
必需
|
如果在保存过程中发生任何错误,请删除任何成功保存的文件,使操作成为原子操作 |
返回
类型 | 说明 |
---|---|
此 MLTable 实例 |
select_partitions
添加转换步骤以选择分区。
select_partitions(partition_index_list)
参数
名称 | 说明 |
---|---|
partition_index_list
必需
|
分区索引列表 |
返回
类型 | 说明 |
---|---|
更新了分区大小的 MLTable |
注解
以下代码片段演示如何将 select_partitions API 用于提供的 MLTable 中的选定分区。
partition_index_list = [1, 2]
mltable = mltable.select_partitions(partition_index_list)
show
检索此 MLTable 的第一个 计数 行作为 Pandas 数据帧。
show(count=20)
参数
名称 | 说明 |
---|---|
count
必需
|
要选择的表顶部的行数 |
返回
类型 | 说明 |
---|---|
<xref:Pandas> <xref:Dataframe>
|
MLTable 的第一个 计数 行 |
skip
take
添加转换步骤以选择此 MLTable 的第一个 计数 行。
take(count=20)
参数
名称 | 说明 |
---|---|
count
必需
|
要选择的表顶部的行数 |
返回
类型 | 说明 |
---|---|
添加了“take”转换步骤的 MLTable |
take_random_sample
添加一个转换步骤,以随机选择此 MLTable 的每一行,并具有 概率 。 概率必须在 [0,1] 范围内。 可以选择设置随机种子。
take_random_sample(probability, seed=None)
参数
名称 | 说明 |
---|---|
probability
必需
|
每一行被选中的几率 |
seed
必需
|
可选随机种子 |
返回
类型 | 说明 |
---|---|
添加了转换步骤的 MLTable |
to_pandas_dataframe
将 MLTable 文件中指定的路径中的所有记录加载到 Pandas 数据帧中。
to_pandas_dataframe()
返回
类型 | 说明 |
---|---|
Pandas 数据帧包含此 MLTable 中路径中的记录 |
注解
以下代码片段演示如何使用 to_pandas_dataframe API 获取与提供的 MLTable 对应的 pandas 数据帧。
from mltable import load
tbl = load('.\samples\mltable_sample')
pdf = tbl.to_pandas_dataframe()
print(pdf.shape)