共用方式為


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)

參數

名稱 Description
paths
必要

路徑支援具有本機或雲端路徑的檔案或資料夾。 相對本機檔案路徑假設是相對於目前的工作目錄。 如果本機檔案路徑相對於 的父目錄不是目前的工作目錄,則建議將該路徑當作絕對檔案路徑傳遞。

header
必要

從檔案讀取時如何處理數據行標頭。 使用列舉 MLTableHeaders指定的選項。 支援的標頭為 「no_header」、「from_first_file」、「all_files_different_headers」和「all_files_same_headers」。

delimiter
必要
str

用來分割數據行的分隔符

support_multi_line
必要

如果為 False,則所有換行符,包括引號域值中的換行符,都會解譯為記錄分隔符。 以這種方式讀取資料,更快且更適合在多個 CPU 核心上平行執行。 不過,它可能會導致以無訊息模式產生更多具有未對齊域值的記錄。 當已知分隔的檔案包含引號換行符時,這應該設定為 True。

假設此 csv 檔案如範例所示,數據會根據support_multi_line以不同的方式讀取。

A,B,C A1,B1,C1 A2,“B2”,C2


   from mltable import from_delimited_files

   # default behavior: support_multi_line=False
   mltable = from_delimited_files(path)
   print(mltable.to_pandas_dataframe())
   #      A   B     C
   #  0  A1  B1    C1
   #  1  A2   B  None
   #  2  2"  C2  None

   # to handle quoted line breaks
   mltable = from_delimited_files(path, support_multi_line=True)
   print(mltable.to_pandas_dataframe())
   #      A       B   C
   #  0  A1      B1  C1
   #  1  A2  B\r\n2  C2
empty_as_string
必要

應該如何處理空白欄位。 如果 True 會將空白字段讀取為空字串,否則會讀取為 Null。 如果 True 和數據行包含日期時間或數值數據,則空白欄位仍會讀取為 Null。

encoding
必要

使用列舉 MLTableFileEncoding指定檔案編碼。 支援的編碼方式如下:

  • utf8 as “utf8”, “utf-8”, “utf-8 bom”
  • iso88591 為 “iso88591” 或 “iso-8859-1”
  • latin1 為 “latin1” 或 “latin-1”
  • utf16 為 “utf16” 或 “utf-16”
  • windows1252 為 “windows1252” 或 “windows-1252”
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的範例。


   from mltable import from_delimited_files

   # default behavior: support_multi_line=False
   mltable = from_delimited_files(paths, infer_column_types={
       'sample_size': 100,
       'column_type_overrides': {
           'colA': 'boolean'
           ('colB', 'colC'): DataType.to_int()
       }
   })

傳回

類型 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
必要
str

指向包含要讀取之 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
必要
int

要用來讀取特定 Parquet 檔案版本的整數版本。

include_path_column
必要

將路徑資訊保留為數據行,在讀取多個檔案時很有用,而且您想要知道特定記錄的來源檔案,或保留可能儲存在檔案路徑中的實用資訊。

傳回

類型 Description

MLTable 實例

備註

from_delta_lake 會建立 MLTable 物件,以定義將數據從 delta Lake 資料夾載入表格式表示的作業。

若要讓 Azure Machine Learning 存取數據, 路徑 必須指向差異數據表目錄,而參考的差異湖檔案必須由 AzureML 服務或公用 Web URL 後方存取。

from_delta_lake 支援從指向的 URI 讀取差異湖數據:本機路徑、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
必要
str

如何處理無效 JSON 的行,可以是 'drop' 或 'error'。 如果卸除 『drop』 無效的行,則會引發錯誤。

encoding
必要

使用列舉 MLTableFileEncoding指定檔案編碼。 支援的檔案編碼:

  • utf8 as “utf8”, “utf-8”, “utf-8 bom”
  • iso88591 為 “iso88591” 或 “iso-8859-1”
  • latin1 為 “latin1” 或 “latin-1”
  • utf16 為 “utf16” 或 “utf-16”
  • windows1252 為 “windows1252” 或 “windows-1252”
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
必要
str

uri 支援長格式資料存放區 URI、記憶體 URI、本機路徑或數據資產 URI 或數據資產簡短 URI

storage_options
必要

URI 是 AML 資產時的 AML 工作區資訊

ml_client
必要

傳回

類型 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)