MLTable 类

表示 MLTable。

MLTable 定义一系列延迟评估的不可变作,用于从数据源加载数据。 在要求 MLTable 提供数据之前,不会从源加载数据。

初始化新的 MLTable。

不应直接调用此构造函数。 MLTable 旨在使用 load.

构造函数

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()
       }
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
必需
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

要从此 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
必需
str

用于将数据提取到列中的分区格式

返回

类型 说明

分区格式设置为给定格式的 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

返回与此 MLTable 关联的数据基础的数据分区数。

get_partition_count() -> int

返回

类型 说明
int

此 MLTable 中的数据分区

keep_columns

添加转换步骤以保留指定的列,并删除数据集中的所有其他列。 如果空列表、元组或集未删除任何内容。 重复的列将引发 UserErrorException。

如果未显式保留MLTable.traits.timestamp_column中的列或MLTable.traits.index_columns中的列,则 UserErrorException 是 raiesd。

keep_columns(columns: str | List[str] | Tuple[str] | Set[str])

参数

名称 说明
columns
必需
Union[str, list[str], <xref:builtin.tuple>[str], <xref:builtin.set>[str]]

要保留的此 MLTable 中的 columns(s)

返回

类型 说明

具有添加转换步骤的 MLTable

random_split

将此 MLTable 随机拆分为两个 MLTable,一个 MLTable 的数据% 大约%,另一个具有其余(1%“%)。

random_split(percent=0.5, seed=None)

参数

名称 说明
percent
必需

要拆分的 MLTable 的百分比

seed
必需

可选随机种子

返回

类型 说明

具有此 MLTable 数据的两个 MLTable 按“百分比”拆分

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

要保存到的目录路径,默认为当前工作目录

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

添加转换步骤以选择分区。

select_partitions(partition_index_list)

参数

名称 说明
partition_index_list
必需
list of int

分区索引列表

返回

类型 说明

更新了分区大小的 MLTable

注解

以下代码片段演示如何使用 select_partitions API 从提供的 MLTable 中选择分区。


   partition_index_list = [1, 2]
   mltable = mltable.select_partitions(partition_index_list)

show

检索此 MLTable 的第一个 计数 行作为 Pandas 数据帧。

show(count=20)

参数

名称 说明
count
必需
int

要选择的表顶部的行数

返回

类型 说明
<xref:Pandas> <xref:Dataframe>

MLTable 的第一个 计数

skip

添加转换步骤以跳过此 MLTable 的第一个 计数 行。

skip(count)

参数

名称 说明
count
必需
int

要跳过的行数

返回

类型 说明

具有添加转换步骤的 MLTable

take

添加转换步骤以选择此 MLTable 的第一个 计数 行。

take(count=20)

参数

名称 说明
count
必需
int

要选择的表顶部的行数

返回

类型 说明

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)

validate

验证是否可以加载此 MLTable 的数据,要求 MLTable 的数据源可从当前计算访问。

validate()

返回

类型 说明

没有

属性

partition_keys

返回分区键。

返回

类型 说明

分区键

paths

返回包含为此 MLTable 提供的原始路径的字典列表。 假定相对本地文件路径相对于从中加载此 MLTable 实例的 MLTable YAML 文件的目录。

返回

类型 说明

包含 MLTable 中指定的路径的听写列表