mltable 包
包含用于与现有和创建新的 MLTable 文件交互的功能。
使用 mltable 包,可以在任何 Python 环境中加载、转换和分析数据,包括 Jupyter Notebook 或你喜欢的 Python IDE。
包
| tests |
包含用于与现有和创建新的 MLTable 文件交互的功能。 使用 mltable 包,可以在任何 Python 环境中加载、转换和分析数据,包括 Jupyter Notebook 或你喜欢的 Python IDE。 |
模块
| mltable |
包含用于创建 MLTable 对象并与之交互的功能 |
类
| DataType |
帮助程序类,用于处理支持的列类型(int、bool、string 等)的正确作。 当前与 MLTable.convert_column_types(...) 和 from_delimited_files(...) 一起使用,用于指定要将列转换为的类型。 选择不同类型的 DataType.from_(...)*方法。 |
| MLTable |
表示 MLTable。 MLTable 定义一系列延迟评估的不可变作,用于从数据源加载数据。 在要求 MLTable 提供数据之前,不会从源加载数据。 初始化新的 MLTable。 不应直接调用此构造函数。 MLTable 旨在使用 load. |
枚举
| MLTableFileEncoding |
定义从文件读取数据以创建 MLTable 时如何处理编码的选项。 这些枚举值在 MLTable 类中使用。 |
| MLTableHeaders |
定义从文件读取数据以创建 MLTable 时如何处理列标题的选项。 这些枚举值在 MLTable 类中使用。 |
函数
from_delimited_files
从给定的带分隔符的文件列表中创建 MLTable。
from_delimited_files(paths, header='all_files_same_headers', delimiter=',', support_multi_line=False, empty_as_string=False, encoding='utf8', include_path_column=False, infer_column_types=True)
参数
| 名称 | 说明 |
|---|---|
|
paths
必需
|
路径支持具有本地或云路径的文件或文件夹。 假定相对本地文件路径相对于当前工作目录。 如果本地文件路径相对于的父目录不是当前工作目录,则建议将该路径作为绝对文件路径传递。 |
|
header
必需
|
从文件读取时如何处理列标题。 使用枚举 MLTableHeaders指定的选项。 支持的标头为“no_header”、“from_first_file”、“all_files_different_headers”和“all_files_same_headers”。 |
|
delimiter
必需
|
用于拆分列的分隔符 |
|
support_multi_line
必需
|
如果为 False,则所有换行符(包括带引号的字段值中的换行符)都将解释为记录分隔符。 以这种方式读取数据更快并且更适合在多个 CPU 核心上并行执行。 但是,它可能会导致无声地生成更多字段值未对齐的记录。 当已知带分隔符的文件包含带引号的换行符时,应将其设置为 True。 将此 csv 文件作为示例,根据support_multi_line以不同的方式读取数据。 A、B、C A1、B1、C1 A2、“B 2”、C2
|
|
empty_as_string
必需
|
如何处理空字段。 如果 True 将空字段读取为空字符串,则否则读取为 null。 如果 True 和列包含日期/时间或数值数据,空字段仍显示为 null。 |
|
encoding
必需
|
使用枚举 MLTableFileEncoding指定文件编码。 支持的编码包括:
|
|
include_path_column
必需
|
将路径信息保留为 MLTable 中的列,在读取多个文件时非常有用,并且你想要知道特定记录来自哪个文件,或者保留可能存储在文件路径中的有用信息。 |
|
infer_column_types
必需
|
如果为 True,则自动推断所有列类型。 如果为 False,则将列保留为字符串。 如果字典,则表示要将其类型设置为给定类型的列(推断所有其他列)。 字典可能包含一个名为 sample_size 映射到正整数的键,表示用于推断列类型的行数。 字典还可能包含名为“column_type_overrides”的键。 字典中的每个键都是表示列名的字符串或表示一组列名的字符串元组。 每个值都是一个字符串(一个“boolean”、“string”、“float”或“int”)或一个 DataType。 mltable。不支持 DataType.to_stream()。 如果给定了空字典,则假定为 True。 默认为 True。 有关如何设置 infer_column_types格式的示例。
|
返回
| 类型 | 说明 |
|---|---|
|
MLTable |
注解
必须有有效的路径字符串。
# load mltable from local delimited file
from mltable import from_delimited_files
paths = [{"file": "./samples/mltable_sample/sample_data.csv"}]
mltable = from_delimited_files(paths)
from_delta_lake
创建 MLTable 对象以从 delta lake 表读取 Parquet 文件中。
from_delta_lake(delta_table_uri, timestamp_as_of=None, version_as_of=None, include_path_column=False)
参数
| 名称 | 说明 |
|---|---|
|
delta_table_uri
必需
|
指向包含要读取的 delta lake parquet 文件的 delta 表目录的 URI。 支持的 URI 类型包括:本地路径 URI、存储 URI、长格式数据存储 URI 或数据资产 URI。 |
|
timestamp_as_of
必需
|
RFC-3339/ISO-8601 格式的 datetime 字符串,用于从特定时间点读取匹配的 parquet 文件。 ex) “2022-10-01T00:00:00Z”, “2022-10-01T00:00:00+08:00”, “2022-10-01T01:30:00-08:00” |
|
version_as_of
必需
|
用于在特定版本的 parquet 文件中读取的整数版本。 |
|
include_path_column
必需
|
将路径信息保留为列,在读取多个文件时非常有用,并且想要知道特定记录来自哪个文件,或保留可能存储在文件路径中的有用信息。 |
返回
| 类型 | 说明 |
|---|---|
|
MLTable 实例 |
注解
from_delta_lake 创建 MLTable 对象,该对象定义将数据从 delta lake 文件夹加载到表格表示形式的作。
若要使 Azure 机器学习可以访问数据, 路径 必须指向增量表目录,并且必须可通过 AzureML 服务或公共 Web URL 访问所引用的 delta lake 文件。
from_delta_lake 支持从指向本地路径、Blob、ADLS Gen1 和 ADLS Gen2 的 URI 读取 delta lake 数据
用户可以通过对返回的 MLTable 调用 to_pandas_dataframe() 来读取和具体化数据
# create an MLTable object from a delta lake using timestamp versioning and materialize the data
from mltable import from_delta_lake
mltable_ts = from_delta_lake(delta_table_uri="./data/delta-01", timestamp_as_of="2021-05-24T00:00:00Z")
pd = mltable_ts.to_pandas_dataframe()
# create an MLTable object from a delta lake using integer versioning and materialize the data
from mltable import from_delta_lake
mltable_version = from_delta_lake(delta_table_uri="./data/delta-02", version_as_of=1)
pd = mltable_version.to_pandas_dataframe()
from_json_lines_files
根据 JSON 文件路径的给定列表创建 MLTable。
from_json_lines_files(paths, invalid_lines='error', encoding='utf8', include_path_column=False)
参数
| 名称 | 说明 |
|---|---|
|
paths
必需
|
路径支持具有本地或云路径的文件或文件夹。 假定相对本地文件路径相对于当前工作目录。 如果本地文件路径相对于的父目录不是当前工作目录,则建议将该路径作为绝对文件路径传递。 |
|
invalid_lines
必需
|
如何处理 JSON 无效的行,可以是“drop”或“error”。 如果删除了“drop”无效行,则引发错误。 |
|
encoding
必需
|
使用枚举 MLTableFileEncoding指定文件编码。 支持的文件编码:
|
|
include_path_column
必需
|
将路径信息保留为列,在读取多个文件时非常有用,并且想要知道特定记录来自哪个文件,或保留可能存储在文件路径中的有用信息。 |
返回
| 类型 | 说明 |
|---|---|
|
MLTable |
注解
必须有有效的路径字典
# load mltable from local JSON paths
from mltable import from_json_lines_files
paths = [{'file': './samples/mltable_sample/sample_data.jsonl'}]
mltable = from_json_lines_files(paths)
from_parquet_files
从给定的 parquet 文件列表创建 MLTable。
from_parquet_files(paths, include_path_column=False)
参数
| 名称 | 说明 |
|---|---|
|
paths
必需
|
路径支持具有本地或云路径的文件或文件夹。 假定相对本地文件路径相对于当前工作目录。 如果本地文件路径相对于的父目录不是当前工作目录,则建议将该路径作为绝对文件路径传递。 |
|
include_path_column
必需
|
将路径信息保留为列,在读取多个文件时非常有用,并且想要知道特定记录来自哪个文件,或保留可能存储在文件路径中的有用信息。 |
返回
| 类型 | 说明 |
|---|---|
|
MLTable 实例 |
注解
必须有有效的路径字典
# load mltable from local parquet paths
from mltable import from_parquet_files
paths = [{'file': './samples/mltable_sample/sample.parquet'}]
mltable = from_parquet_files(paths)
from_paths
从给定路径创建 MLTable。
from_paths(paths)
参数
| 名称 | 说明 |
|---|---|
|
paths
必需
|
路径支持具有本地或云路径的文件或文件夹。 假定相对本地文件路径相对于当前工作目录。 如果本地文件路径相对于的父目录不是当前工作目录,则建议将该路径作为绝对文件路径传递。 |
返回
| 类型 | 说明 |
|---|---|
|
MLTable 实例 |
注解
必须有有效的路径字典
# load mltable from local paths
from mltable import from_paths
tbl = from_paths([{'file': "./samples/mltable_sample"}])
# load mltable from cloud paths
from mltable import load
tbl = from_paths(
[{'file': "https://<blob-storage-name>.blob.core.windows.net/<path>/sample_file"}])
load
加载给定 URI 中存在的 MLTable 文件(YAML)。
storage_options 支持“subscription”、“resource_group”、“workspace”或“location”的密钥。 所有必须找到 Azure 机器学习工作区。
load(uri, storage_options: dict = None, ml_client=None)
参数
| 名称 | 说明 |
|---|---|
|
uri
必需
|
uri 支持长格式数据存储 URI、存储 URI、本地路径或数据资产 URI 或数据资产短 URI |
|
storage_options
必需
|
URI 是 AML 资产时的 AML 工作区信息 |
|
ml_client
必需
|
MLClient 实例。 若要了解更多信息,请参阅 https://learn.microsoft.com/en-us/python/api/azure-ai-ml/azure.ai.ml.mlclient?view=azure-python |
返回
| 类型 | 说明 |
|---|---|
|
MLTable |
注解
给定 URI 中必须存在名为“MLTable”的有效 MLTable YAML 文件。
# load mltable from local folder
from mltable import load
tbl = load('.\samples\mltable_sample')
# load mltable from azureml datastore uri
from mltable import load
tbl = load(
'azureml://subscriptions/<subscription-id>/
resourcegroups/<resourcegroup-name>/workspaces/<workspace-name>/
datastores/<datastore-name>/paths/<mltable-path-on-datastore>/')
# load mltable from azureml data asset uri
from mltable import load
tbl = load(
'azureml://subscriptions/<subscription-id>/
resourcegroups/<resourcegroup-name>/providers/Microsoft.MachineLearningServices/
workspaces/<workspace-name>/data/<data-asset-name>/versions/<data-asset-version>/')
# load mltable from azureml data asset short uri
from mltable import load
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
ml_client = MLClient(credential, <subscription_id>, <resourcegroup-name>, <workspace-name>)
tbl = load('azureml:<data-asset-name>:<version>', ml_client=ml_client)