TabularDataset 類別

表示要用於 Azure Machine Learning 的表格式數據集。

TabularDataset 會定義一系列的延遲評估、不可變的作業,以將數據從數據源載入表格式表示。 除非要求 TabularDataset 傳遞數據,否則不會從來源載入數據。

TabularDataset 是使用來自 from_delimited_filesTabularDatasetFactory 類別的方法所建立。

如需詳細資訊,請參閱 新增 & 註冊數據集一文。 若要開始使用表格式資料集,請參閱 https://aka.ms/tabulardataset-samplenotebook

初始化 TabularDataset 物件。

此建構函式不應該直接叫用。 數據集旨在使用 TabularDatasetFactory 類別來建立。

繼承
TabularDataset

建構函式

TabularDataset()

備註

您可以使用 類別的方法TabularDatasetFactory,從 CSV、TSV、Parquet 檔案或 SQL 查詢from_*建立 TabularDataset。 您可以在 TabularDataset 上執行子設定作業,例如分割、略過和篩選記錄。 子設定的結果一律是一或多個新的 TabularDataset 物件。

您也可以將 TabularDataset 轉換成其他格式,例如 pandas DataFrame。 當系統要求將數據傳遞至另一個儲存機制 (時,就會執行實際的數據載入,例如 Pandas 數據框架或 CSV 檔案) 。

TabularDataset 可用來做為實驗執行的輸入。 它也可以向具有指定名稱的工作區註冊,稍後再由該名稱擷取。

方法

download

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

將數據集定義的檔案數據流下載到本機路徑。

drop_columns

從數據集卸除指定的數據行。

如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。

filter

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

篩選數據,只保留符合指定表達式的記錄。

get_profile

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

從針對此或工作區中相同數據集提交的最新配置檔執行取得數據配置檔。

get_profile_runs

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

傳回與工作區中這個或相同數據集相關聯的先前配置檔執行。

keep_columns

保留指定的數據行,並從數據集卸除所有其他數據行。

如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。

mount

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

建立內容管理員,以掛接數據集所定義的檔案數據流作為本機檔案。

partition_by

分割的數據將會複製並輸出至目標所指定的目的地。

使用數據分割格式從輸出的數據路徑建立數據集,如果提供名稱,請註冊數據集,並傳回具有分割區之新數據路徑的數據集


   ds = Dataset.get_by_name('test') # indexed by country, state, partition_date

   # #1: call partition_by locally
   new_ds = ds.partition_by(name="repartitioned_ds", partition_keys=['country'],
               target=DataPath(datastore, "repartition"))
   partition_keys = newds.partition_keys # ['country']

   # new_ds can be passed to PRS as input dataset
random_split

將數據集中的記錄隨機分割成兩個部分,大約依指定的百分比來分割。

第一個數據集包含大約 percentage 總記錄和剩餘記錄的第二個數據集。

skip

依指定的計數略過數據集頂端的記錄。

submit_profile_run

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

提交實驗執行以計算數據配置檔。

數據配置檔對於瞭解輸入數據、識別異常和遺漏值非常有用,方法是提供數據行類型、遺漏值等實用資訊。

take

依指定的計數從數據集頂端擷取記錄的範例。

take_sample

依指定的機率,大約取得數據集中記錄的隨機樣本。

time_after

在指定的開始時間之後,篩選具有時間戳數據行的 TabularDataset。

time_before

在指定的結束時間之前,使用時間戳數據行篩選 TabularDataset。

time_between

篩選指定開始和結束時間之間的 TabularDataset。

time_recent

篩選 TabularDataset,只包含最近數據 (量) 指定的持續時間。

to_csv_files

將目前的數據集轉換成包含 CSV 檔案的 FileDataset。

產生的數據集將包含一或多個 CSV 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。

to_dask_dataframe

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

傳回 Dask DataFrame,可延遲讀取數據集中的數據。

to_pandas_dataframe

將所有記錄從數據集載入 pandas DataFrame。

to_parquet_files

將目前的數據集轉換成包含 Parquet 檔案的 FileDataset。

產生的數據集將包含一或多個 Parquet 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。

to_spark_dataframe

將所有記錄從數據集載入 Spark DataFrame。

with_timestamp_columns

定義數據集的時間戳數據行。

download

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

將數據集定義的檔案數據流下載到本機路徑。

download(stream_column, target_path=None, overwrite=False, ignore_not_found=True)

參數

stream_column
str
必要

要下載的數據流數據行。

target_path
str
必要

要下載檔案的本機目錄。 如果為 None,數據將會下載到暫存目錄。

overwrite
bool
必要

指出是否要覆寫現有的檔案。 預設值是 False。 如果覆寫設定為 True,則會覆寫現有的檔案;否則會引發例外狀況。

ignore_not_found
bool
必要

指出如果找不到數據集所指向的某些檔案,是否無法下載。 預設值為 True。 如果ignore_not_found設為 False,如果任何檔案下載失敗,下載將會失敗;否則,只要沒有遇到其他錯誤類型,就會記錄未找到錯誤的衝突,而且 dowload 將會成功。

傳回

傳回所下載每個檔案的檔案路徑陣列。

傳回類型

drop_columns

從數據集卸除指定的數據行。

如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。

drop_columns(columns)

參數

columns
Union[str, list[str]]
必要

要卸除之數據行的名稱或名稱清單。

傳回

傳回已卸除指定數據行的新 TabularDataset 物件。

傳回類型

filter

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

篩選數據,只保留符合指定表達式的記錄。

filter(expression)

參數

expression
any
必要

要評估的運算式。

傳回

已修改的數據集 (取消註冊) 。

傳回類型

備註

表達式的開頭是使用數據行名稱來編製數據集的索引。 它們支持各種函式和運算符,而且可以使用邏輯運算符來結合。 產生的表達式會在數據提取發生且未定義的位置時,針對每個記錄延遲評估。


   dataset['myColumn'] > dataset['columnToCompareAgainst']
   dataset['myColumn'].starts_with('prefix')

get_profile

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

從針對此或工作區中相同數據集提交的最新配置檔執行取得數據配置檔。

get_profile(workspace=None)

參數

workspace
Workspace
必要

提交配置檔執行的工作區。 預設為此數據集的工作區。 如果數據集未與工作區相關聯,則為必要專案。 如需工作區的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace

傳回

從 DatasetProfile 類型的最新配置檔執行分析結果。

傳回類型

get_profile_runs

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

傳回與工作區中這個或相同數據集相關聯的先前配置檔執行。

get_profile_runs(workspace=None)

參數

workspace
Workspace
必要

提交配置檔執行的工作區。 預設為此數據集的工作區。 如果數據集未與工作區相關聯,則為必要專案。 如需工作區的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace

傳回

azureml.core.Run 類型的iterator物件。

傳回類型

keep_columns

保留指定的數據行,並從數據集卸除所有其他數據行。

如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。

keep_columns(columns, validate=False)

參數

columns
Union[str, list[str]]
必要

要保留之數據行的名稱或名稱清單。

validate
bool
必要

指出是否要驗證是否可以從傳回的數據集載入數據。 預設值是 False。 驗證要求數據源可從目前的計算存取。

傳回

傳回新的 TabularDataset 物件,只保留指定的數據行。

傳回類型

mount

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

建立內容管理員,以掛接數據集所定義的檔案數據流作為本機檔案。

mount(stream_column, mount_point=None)

參數

stream_column
str
必要

要掛接的數據流數據行。

mount_point
str
必要

要掛接檔案的本機目錄。 如果為 None,數據會掛接至暫存目錄,您可以藉由呼叫 MountContext.mount_point 實例方法來找到此目錄。

傳回

傳回用於管理掛接生命周期的內容管理員。

傳回類型

<xref:azureml.dataprep.fuse.daemon.MountContext>

partition_by

分割的數據將會複製並輸出至目標所指定的目的地。

使用數據分割格式從輸出的數據路徑建立數據集,如果提供名稱,請註冊數據集,並傳回具有分割區之新數據路徑的數據集


   ds = Dataset.get_by_name('test') # indexed by country, state, partition_date

   # #1: call partition_by locally
   new_ds = ds.partition_by(name="repartitioned_ds", partition_keys=['country'],
               target=DataPath(datastore, "repartition"))
   partition_keys = newds.partition_keys # ['country']

   # new_ds can be passed to PRS as input dataset
partition_by(partition_keys, target, name=None, show_progress=True, partition_as_file_dataset=False)

參數

partition_keys
list[str]
必要

必要,分割區索引鍵

target
DataPath, Datastoretuple(Datastore, str) object
必要

必要數據存放區路徑,數據框架 parquet 資料將會上傳至其中。 guid 資料夾將會在目標路徑下產生,以避免發生衝突。

name
str
必要

選擇性的註冊名稱。

show_progress
bool
必要

選擇性,指出是否要在控制台中顯示上傳的進度。 預設值為 True。

partition_as_file_dataset
必要

選擇性,指出是否傳回 filedataset。 預設值為 False。

傳回

已儲存或已註冊的數據集。

傳回類型

random_split

將數據集中的記錄隨機分割成兩個部分,大約依指定的百分比來分割。

第一個數據集包含大約 percentage 總記錄和剩餘記錄的第二個數據集。

random_split(percentage, seed=None)

參數

percentage
float
必要

分割數據集的近似百分比。 這必須是介於 0.0 和 1.0 之間的數位。

seed
int
必要

要用於隨機產生器的選擇性種子。

傳回

傳回新的 TabularDataset 物件的元組,代表分割后的兩個數據集。

傳回類型

skip

依指定的計數略過數據集頂端的記錄。

skip(count)

參數

count
int
必要

要略過的記錄數目。

傳回

傳回新的 TabularDataset 物件,代表略過記錄的數據集。

傳回類型

submit_profile_run

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

提交實驗執行以計算數據配置檔。

數據配置檔對於瞭解輸入數據、識別異常和遺漏值非常有用,方法是提供數據行類型、遺漏值等實用資訊。

submit_profile_run(compute_target, experiment, cache_datastore_name=None)

參數

compute_target
Union[str, ComputeTarget]
必要

要執行配置檔計算實驗的計算目標。 指定 『local』 以使用本機計算。 如需計算目標的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.computetarget

experiment
Experiment
必要

實驗物件。 如需實驗的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.experiment.experiment

cache_datastore_name
str
必要

要儲存配置檔快取的數據存放區名稱,如果為 None,則會使用預設資料存放區

傳回

DatasetProfileRun 類別類型的物件。

傳回類型

take

依指定的計數從數據集頂端擷取記錄的範例。

take(count)

參數

count
int
必要

要擷取的記錄數目。

傳回

會傳回代表取樣數據集的新 TabularDataset 物件。

傳回類型

take_sample

依指定的機率,大約取得數據集中記錄的隨機樣本。

take_sample(probability, seed=None)

參數

probability
float
必要

範例中包含記錄的機率。

seed
int
必要

要用於隨機產生器的選擇性種子。

傳回

會傳回代表取樣數據集的新 TabularDataset 物件。

傳回類型

time_after

在指定的開始時間之後,篩選具有時間戳數據行的 TabularDataset。

time_after(start_time, include_boundary=True, validate=True)

參數

start_time
datetime
必要

篩選數據的下限。

include_boundary
bool
必要

指出是否應該包含與界限時間相關聯的數據列 (start_time) 。

validate
bool
必要

指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。

傳回

具有新篩選數據集的 TabularDataset。

傳回類型

time_before

在指定的結束時間之前,使用時間戳數據行篩選 TabularDataset。

time_before(end_time, include_boundary=True, validate=True)

參數

end_time
datetime
必要

篩選數據的上限。

include_boundary
bool
必要

指出是否應該包含與界限時間相關聯的數據列 (end_time) 。

validate
bool
必要

指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。

傳回

具有新篩選數據集的 TabularDataset。

傳回類型

time_between

篩選指定開始和結束時間之間的 TabularDataset。

time_between(start_time, end_time, include_boundary=True, validate=True)

參數

start_time
datetime
必要

篩選數據的下限。

end_time
datetime
必要

篩選數據的上限。

include_boundary
bool
必要

指出是否應該包含與界限時間 (start_endend_time) 相關聯的數據列。

validate
bool
必要

指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。

傳回

具有新篩選數據集的 TabularDataset。

傳回類型

time_recent

篩選 TabularDataset,只包含最近數據 (量) 指定的持續時間。

time_recent(time_delta, include_boundary=True, validate=True)

參數

time_delta
timedelta
必要

要擷取之最近數據) 持續時間 (量。

include_boundary
bool
必要

指出是否應該包含與界限時間相關聯的數據列 (time_delta) 。

validate
bool
必要

指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。

傳回

具有新篩選數據集的 TabularDataset。

傳回類型

to_csv_files

將目前的數據集轉換成包含 CSV 檔案的 FileDataset。

產生的數據集將包含一或多個 CSV 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。

to_csv_files(separator=',')

參數

separator
str
必要

用來分隔結果檔案中值的分隔符。

傳回

傳回新的 FileDataset 物件,其中包含一組 CSV 檔案,其中包含此數據集中的數據。

傳回類型

to_dask_dataframe

注意

這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。

傳回 Dask DataFrame,可延遲讀取數據集中的數據。

to_dask_dataframe(sample_size=10000, dtypes=None, on_error='null', out_of_range_datetime='null')

參數

sample_size
必要

要讀取以判斷架構和類型的記錄數目。

dtypes
必要

選擇性聽寫,指定預期的數據行及其 dtype。 如果提供,則會忽略sample_size

on_error
必要

如何處理數據集中的任何錯誤值,例如剖析值時由錯誤所產生的錯誤值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。

out_of_range_datetime
必要

如何處理 Pandas 所支援範圍以外的日期時間值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。

傳回

dask.dataframe.core.DataFrame

to_pandas_dataframe

將所有記錄從數據集載入 pandas DataFrame。

to_pandas_dataframe(on_error='null', out_of_range_datetime='null')

參數

on_error
必要

如何處理數據集中的任何錯誤值,例如剖析值時由錯誤所產生的錯誤值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。

out_of_range_datetime
必要

如何處理 Pandas 所支援範圍以外的日期時間值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。

傳回

傳回 pandas DataFrame。

傳回類型

to_parquet_files

將目前的數據集轉換成包含 Parquet 檔案的 FileDataset。

產生的數據集將包含一或多個 Parquet 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。

to_parquet_files()

傳回

傳回新的 FileDataset 物件,其中包含此數據集內數據的一組 Parquet 檔案。

傳回類型

to_spark_dataframe

將所有記錄從數據集載入 Spark DataFrame。

to_spark_dataframe()

傳回

傳回 Spark 資料框架。

傳回類型

with_timestamp_columns

定義數據集的時間戳數據行。

with_timestamp_columns(timestamp=None, partition_timestamp=None, validate=False, **kwargs)

參數

timestamp
str
必要

用來稱為選擇性) fine_grain_timestamp) (时间戳 (數據行的名稱。 默認值為 [無] (清除) 。

partition_timestamp
str
必要

用來稱為粗細時間戳的數據行partition_timestamp (名称,) (選擇性) 。 默認值為 [無] (清除) 。

validate
bool
必要

指出是否要在數據集中驗證指定的數據行是否存在。 預設值是 False。 驗證要求數據源可從目前的計算存取。

傳回

傳回已定義時間戳數據行的新 TabularDataset。

傳回類型

備註

方法會定義要當做時間戳使用的數據行。 數據集上的時間戳數據行可讓您將數據視為時間序列數據,並啟用其他功能。 當數據集同時 timestamp (used to be referred as fine_grain_timestamp) 指定 和 partition_timestamp (used to be referred as coarse grain timestamp) 時,這兩個數據行應該代表相同的時程表。

屬性

timestamp_columns

傳回時間戳數據行。

傳回

時間戳的數據行名稱 (用來稱為fine_grain_timestamp) ,以及用來稱為數據集的粗略時間戳) partition_timestamp (。

傳回類型

(str, str)