mltable 模組
包含用來建立及與 MLTable 物件互動的功能
類別
DataType |
Helper 類別,用於處理支持的數據行類型 (int、bool、string 等 ) 的適當操作。 目前與 MLTable.convert_column_types (...) & from_delimited_files (...) 搭配使用,以指定要轉換數據行的類型。 已選取不同類型的 DataType.from_ (...) * 方法。 |
MLTable |
代表MLTable。 MLTable 會定義一系列延遲評估、不可變的作業,以從數據源載入數據。 除非要求 MLTable 傳遞數據,否則不會從來源載入數據。 初始化新的MLTable。 此建構函式不應該直接叫用。 MLTable 旨在使用 load來建立。 |
Metadata |
對應至MLTable之元數據區段的類別。 支援 & 新增arbritrary元資料屬性。 |
Traits |
對應至 MLTable 之特性區段的類別。 目前支援的特性:timestamp_column和index_columns |
列舉
MLTableFileEncoding |
定義從檔案讀取數據以建立 MLTable 時如何處理編碼的選項。 這些列舉值會用於MLTable類別中。 |
MLTableHeaders |
定義從檔案讀取數據以建立 MLTable 時,如何處理數據行標頭的選項。 這些列舉值會用於MLTable類別中。 |
MLTablePartitionSize |
協助程式列舉,代表配置給讀取各種分割區的記憶體,以便跨不同記憶體單位選取檔格式。 目前用於讀取分隔符或 JSON 行檔案時。 支援以二進位表示的位元組、KB、MB 和 GB 作為記憶體單位。 |
MLTableSaveOverwriteOption |
定義如何在 MLTable.save 中處理檔案衝突的選項 () 。 如果發生衝突,請引發錯誤、以新檔案覆寫現有的檔案,或讓現有檔案保持原狀。 |
函式
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)
參數
名稱 | Description |
---|---|
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,“B2”,C2
|
empty_as_string
必要
|
應如何處理空白欄位。 如果 True 會將空白字段讀取為空字串,否則會讀取為 Null。 如果 True 且數據行包含日期時間或數值數據,則空白欄位仍會讀取為 Null。 |
encoding
必要
|
使用列舉 MLTableFileEncoding指定檔案編碼。 支援的編碼方式如下:
|
include_path_column
必要
|
將路徑資訊保留為 MLTable 中的數據行,在讀取多個檔案時很有用,而且您想要知道特定記錄的來源檔案,或保留可能儲存在檔案路徑中的實用資訊。 |
infer_column_types
必要
|
如果為 True,則會自動推斷所有數據行類型。 如果為 False,則會將數據行保留為字串。 如果字典,表示類型要設定為指定類型的數據行, (推斷其他所有數據行) 。 字典可能包含一個名為 sample_size 對應至正整數位的索引鍵,代表用於推斷數據行類型的數據列數目。 字典也可能包含名為 『column_type_overrides』 的索引鍵。 字典中的每個索引鍵都是代表數據行名稱的字串,或是代表數據行名稱群組的字串 Tuple。 每個值都是字串 (其中一個 'boolean'、'string'、'float' 或 'int') 或 DataType。 mltable。不支援DataType.to_stream () 。 如果指定空的字典,假設為 True。 預設值為 True。 如何 格式化infer_column_types的範例。
|
傳回
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
delta_table_uri
必要
|
指向包含要讀取之 delta Lake parquet 檔案之差異數據表目錄的 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
必要
|
將路徑資訊保留為數據行,在讀取多個檔案時很有用,而且您想要知道特定記錄的來源檔案,或保留可能儲存在檔案路徑中的實用資訊。 |
傳回
類型 | Description |
---|---|
MLTable 實例 |
備註
from_delta_lake 會建立 MLTable 物件,該物件會定義將數據從 delta Lake 資料夾載入表格式表示的作業。
若要讓 Azure Machine Learning 存取的數據, 路徑 必須指向差異數據表目錄,而參考的差異湖檔案必須由 AzureML 服務或公用 Web URL 存取。
from_delta_lake 支援從指向的 URI 讀取 Delta Lake 數據:本機路徑、Blob、ADLS Gen1 和 ADLS Gen2
用戶可以藉由在傳回的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)
參數
名稱 | Description |
---|---|
paths
必要
|
路徑支援具有本機或雲端路徑的檔案或資料夾。 相對本機檔案路徑假設是相對於目前的工作目錄。 如果父目錄的本機檔案路徑相對於 不是目前的工作目錄,則建議將該路徑當作絕對檔案路徑傳遞。 |
invalid_lines
必要
|
如何處理無效 JSON 的行,可以是 'drop' 或 'error'。 如果卸除 『drop』 無效的行,則會引發錯誤。 |
encoding
必要
|
使用列舉 MLTableFileEncoding指定檔案編碼。 支援的檔案編碼:
|
include_path_column
必要
|
將路徑資訊保留為數據行,在讀取多個檔案時很有用,而且您想要知道特定記錄的來源檔案,或保留可能儲存在檔案路徑中的實用資訊。 |
傳回
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
paths
必要
|
路徑支援具有本機或雲端路徑的檔案或資料夾。 相對本機檔案路徑假設是相對於目前的工作目錄。 如果父目錄的本機檔案路徑相對於 不是目前的工作目錄,則建議將該路徑當作絕對檔案路徑傳遞。 |
include_path_column
必要
|
將路徑資訊保留為數據行,在讀取多個檔案時很有用,而且您想要知道特定記錄的來源檔案,或保留可能儲存在檔案路徑中的實用資訊。 |
傳回
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
paths
必要
|
路徑支援具有本機或雲端路徑的檔案或資料夾。 相對本機檔案路徑假設是相對於目前的工作目錄。 如果父目錄的本機檔案路徑相對於 不是目前的工作目錄,則建議將該路徑當作絕對檔案路徑傳遞。 |
傳回
類型 | Description |
---|---|
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
載入 MLTable 檔案 (YAML) 指定的 URI。
storage_options 支援 'subscription'、'resource_group'、'workspace' 或 'location' 的密鑰。 所有都必須找到 Azure Machine Learning 工作區。
load(uri, storage_options: dict = None, ml_client=None)
參數
名稱 | Description |
---|---|
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 |
傳回
類型 | Description |
---|---|
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)