MLTable 类
表示 MLTable。
MLTable 定义一系列延迟评估的不可变作,用于从数据源加载数据。 在要求 MLTable 提供数据之前,不会从源加载数据。
初始化新的 MLTable。
不应直接调用此构造函数。 MLTable 旨在使用 load.
构造函数
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}”创建日期时间列,其中“yy”、“MM”、“dd”、“HH”、“mm”和“ss”用于提取日期时间类型的年、月、日、小时、分钟和秒。 格式应从第一个分区键的位置开始,直到文件路径的末尾。 例如,给定路径“/Accounts/2019/01/01/data.csv”,其中分区按部门名称和时间划分, partition_format=“/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv”创建一个字符串列“Department”,其值为“Accounts”,日期/时间列“PartitionDate”的值为“2019-01-01”。 |
filter |
筛选数据,仅保留与指定表达式匹配的记录。 |
get_partition_count |
返回与此 MLTable 关联的数据基础的数据分区数。 |
keep_columns |
添加转换步骤以保留指定的列,并删除数据集中的所有其他列。 如果空列表、元组或集未删除任何内容。 重复的列将引发 UserErrorException。 如果未显式保留MLTable.traits.timestamp_column中的列或MLTable.traits.index_columns中的列,则 UserErrorException 是 raiesd。 |
random_split |
将此 MLTable 随机拆分为两个 MLTable,一个 MLTable 的数据% 大约%,另一个具有其余(1%“%)。 |
save |
将此 MLTable 保存为 MLTable YAML 文件,并将其同声路径保存到给定目录路径。 如果未指定 路径 ,则默认为当前工作目录。 如果 路径 不存在,则会创建它。 如果 路径 是远程的,则基础数据存储必须已存在。 如果 路径 是本地目录而不是绝对目录,则它是绝对的。 如果 路径 指向文件,则会引发 UserErrorException。 如果 路径 是已保存的一个或多个文件的目录路径(包括 MLTable YAML 文件),并且 覆盖 设置为 False 或“fail”,则会引发 UserErrorException。 如果 路径 是远程路径,则未作为并置路径提供的任何本地文件路径(相对于 MLTable 从中加载的目录的文件路径)都将引发 UserErrorException。 共置 控制如何将关联的路径保存到 路径。 如果为 True,则文件作为相对文件路径复制到 MLTable YAML 文件旁边的 路径 。 否则,不复制关联的文件,远程路径将保持给定状态,并且本地文件路径是相对于路径重定向(如果需要)。 请注意,False 可能会导致不建议使用非分配的 MLTable YAML 文件,如果 路径 为远程,这将导致 UserErrorException,因为远程 URI 不支持相对路径重定向。 请注意,如果使用具有本地相对路径的 from_paths() 或 from_read_delimited_files() 等方法以编程方式创建 MLTable,则 MLTable 目录路径假定为当前工作目录。 在保存新文件之前,将新的 MLTable 和关联的数据文件保存到具有现有 MLTable 文件和关联数据文件的目录时,请注意该目录未清除现有文件。 保存新文件后,现有的数据文件可以保留,尤其是在现有数据文件没有与任何新数据文件匹配的名称时。 如果新的 MLTable 在其路径下包含模式设计器,则可能无意中通过将现有数据文件与新的 MLTable 相关联来更改 MLTable。 如果此 MLTable 中的文件路径指向 路径 中的现有文件,但具有其他 URI,如果覆盖为“fail”或“skip”,则不会覆盖现有文件(即跳过)。 |
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 中删除的 column(s) |
返回
类型 | 说明 |
---|---|
具有添加转换步骤的 MLTable |
extract_columns_from_partition_format
添加转换步骤以使用每个路径的分区信息,并根据指定的分区格式将其提取到列中。
设置部件“{column_name}”的格式将创建字符串列,“{column_name:yyyy/MM/dd/HH/mm/ss}”创建日期时间列,其中“yy”、“MM”、“dd”、“HH”、“mm”和“ss”用于提取日期时间类型的年、月、日、小时、分钟和秒。
格式应从第一个分区键的位置开始,直到文件路径的末尾。 例如,给定路径“/Accounts/2019/01/01/data.csv”,其中分区按部门名称和时间划分, partition_format=“/{Department}/{PartitionDate:yyyy/MM/dd}/data.csv”创建一个字符串列“Department”,其值为“Accounts”,日期/时间列“PartitionDate”的值为“2019-01-01”。
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 是 raiesd。
keep_columns(columns: str | List[str] | Tuple[str] | Set[str])
参数
名称 | 说明 |
---|---|
columns
必需
|
要保留的此 MLTable 中的 columns(s) |
返回
类型 | 说明 |
---|---|
具有添加转换步骤的 MLTable |
random_split
save
将此 MLTable 保存为 MLTable YAML 文件,并将其同声路径保存到给定目录路径。
如果未指定 路径 ,则默认为当前工作目录。 如果 路径 不存在,则会创建它。 如果 路径 是远程的,则基础数据存储必须已存在。 如果 路径 是本地目录而不是绝对目录,则它是绝对的。
如果 路径 指向文件,则会引发 UserErrorException。 如果 路径 是已保存的一个或多个文件的目录路径(包括 MLTable YAML 文件),并且 覆盖 设置为 False 或“fail”,则会引发 UserErrorException。 如果 路径 是远程路径,则未作为并置路径提供的任何本地文件路径(相对于 MLTable 从中加载的目录的文件路径)都将引发 UserErrorException。
共置 控制如何将关联的路径保存到 路径。 如果为 True,则文件作为相对文件路径复制到 MLTable YAML 文件旁边的 路径 。 否则,不复制关联的文件,远程路径将保持给定状态,并且本地文件路径是相对于路径重定向(如果需要)。 请注意,False 可能会导致不建议使用非分配的 MLTable YAML 文件,如果 路径 为远程,这将导致 UserErrorException,因为远程 URI 不支持相对路径重定向。
请注意,如果使用具有本地相对路径的 from_paths() 或 from_read_delimited_files() 等方法以编程方式创建 MLTable,则 MLTable 目录路径假定为当前工作目录。
在保存新文件之前,将新的 MLTable 和关联的数据文件保存到具有现有 MLTable 文件和关联数据文件的目录时,请注意该目录未清除现有文件。 保存新文件后,现有的数据文件可以保留,尤其是在现有数据文件没有与任何新数据文件匹配的名称时。 如果新的 MLTable 在其路径下包含模式设计器,则可能无意中通过将现有数据文件与新的 MLTable 相关联来更改 MLTable。
如果此 MLTable 中的文件路径指向 路径 中的现有文件,但具有其他 URI,如果覆盖为“fail”或“skip”,则不会覆盖现有文件(即跳过)。
save(path=None, overwrite=True, colocated=False, show_progress=False, if_err_remove_files=True)
参数
名称 | 说明 |
---|---|
path
必需
|
要保存到的目录路径,默认为当前工作目录 |
colocated
必需
|
如果为 True,则将此 MLTable 中的本地和远程文件路径 的副本保存为 相对路径。 否则,不会发生任何文件复制,远程文件路径将保存为保存的 MLTable YAML 文件和本地文件路径作为具有路径重定向的相对文件路径。 如果 路径 为 remote 且此 MLTable 包含本地文件路径,则会引发 UserErrorException。 |
overwrite
必需
|
Union[bool, str, <xref:mltable.MLTableSaveOverwriteOptions>]
如何处理 路径 下可能存在的 MLTable YAML 文件和关联的文件。 选项为“overwrite”(或 True),用于替换任何现有文件、“fail”(或 False)以引发错误(如果文件已存在),或“skip”将现有文件保留原样。 也可以设置 。<xref:mltable.MLTableSaveOverwriteOptions> |
show_progress
必需
|
显示将进度复制到 stdout |
if_err_remove_files
必需
|
如果在保存过程中发生任何错误,请删除任何成功保存的文件以使作原子 |
返回
类型 | 说明 |
---|---|
此 MLTable 实例 |
select_partitions
show
检索此 MLTable 的第一个 计数 行作为 Pandas 数据帧。
show(count=20)
参数
名称 | 说明 |
---|---|
count
必需
|
要选择的表顶部的行数 |
返回
类型 | 说明 |
---|---|
<xref:Pandas> <xref:Dataframe>
|
MLTable 的第一个 计数 行 |
skip
take
take_random_sample
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)