VALID 函式

測試一組值對指定的資料類型而言是否有效,以及是否為空值。
  • 若是指定的資料類型和值集,此函式會傳回 truefalse
  • 輸入可以是常值或資料欄參照。

您可以交互使用 ISVALID 函式關鍵字。

  • 您可以在單一步驟中定義有效值的條件測試。請參閱 IFVALID 函式
  • 此函式與 ISMISMATCHED 函式類似,可根據指定的資料類型來測試不相符的值。但 ISMISMATCHED 函式還會比對遺漏值,而 ISVALID 函式不會。請參閱 ISMISMATCHED 函式

基本用法

資料欄參照範例:

keep row:(ISVALID(Qty, 'Integer') && (Qty > 0))

輸出:保留 Qty 資料欄中值含有有效整數且值大於零的所有資料列。

數字常值範例:

derive type:single value: ISVALID('ZZ', 'State')

輸出:產生含有 false 的新資料欄,因為 ZZ 值不是有效的美國州名代碼。

語法

derive type:single value:ISVALID(column_string,datatype_literal)

引數是否必要?資料類型說明
column_string字串待套用至函式的資料欄名稱或字串常值
datatype_literal字串字串常值,可識別用於驗證來源值的資料類型

若要進一步瞭解語法標準,請參閱語言文件語法附註

column_string

待評估有效性的資料欄名稱或字串常值。

  • 如果系統找不到常值或資料欄值,則產生的結果也會遺漏該值。
    • 常數必須以引號括住 ('Hello, World')。
  • 不支援多個資料欄和萬用字元。

使用須知:

是否必要?資料類型示例值
字串常值或資料欄參照myColumn

datatype_literal

用來比對來源資料欄或字串資料類型的常值。詳情請參閱有效資料類型字串

  • 不支援資料欄參照。

使用須知:

是否必要?資料類型示例值
字串常值'Integer'

有效資料類型字串:

在轉換內參照資料類型時,可以使用下列字串來辨識每種類型:

附註:在 Wrangle 轉換中,值有大小寫之分。

資料類型字串
字串'String'
整數'Integer'
小數'Float'
布林值'Bool'
社會安全號碼'SSN'
電話號碼'Phone'
電子郵件地址'Emailaddress'
信用卡'Creditcard'
性別'Gender'
物件'Map'
陣列'Array'
IP 位址'Ipaddress'
網址'Url'
HTTP 代碼'Httpcodes'
郵遞區號'Zipcode'
狀態'State'
日期/時間'Datetime'

範例

範例 - 類型檢查函式

此範例會說明如何將各種類型檢查函式套用到您的資料。

  • ISVALID - 如果輸入值符合指定的資料類型,則傳回 true。請參閱 VALID 函式
  • ISMISMATCHED - 如果輸入值不符合指定的資料類型,則傳回 true。請參閱 ISMISMATCHED 函式
  • ISMISSING - 如果缺少輸入值,則傳回 true。請參閱 ISMISSING 函式
  • ISNULL - 如果輸入值為空值,則傳回 true。請參閱 ISNULL 函式
  • NULL - 產生空值。請參閱 NULL 函式

來源:

部分來源值應該會符合「州」和「整數」的資料類型。

StateQty
CA10
OR-10
WA2.5
ZZ15
ID
4

轉換:

您可以使用下列指令來測試 State 資料欄是否含有無效值:

derive type:single value: ISMISMATCHED (State, 'State')

您可以使用下列指令來測試 Qty 資料欄是否含有有效相符值:

derive type:single value: (ISVALID (Qty, 'Integer') && (Qty > 0)) as:'valid_Qty'

第一個轉換會將第 4 列和第 6 列標記為不相符。

附註:遺漏值對任何類型 (包含字串類型) 而言均為無效值。

如果資料列的 Qty 資料欄為大於 0 的有效整數,第二個轉換會將這些資料列全標記成有效。

下列的轉換指令會測試資料欄是否有出現遺漏值:

derive type:single value: (ISMISSING(State) || ISMISSING(Qty)) as:'missing_State_Qty'

使用 move 轉換重新整理資料欄後,資料集應會如下所示:

StateQtymismatched_Statevalid_Qtymissing_State_Qty
CA10falsetruefalse
OR-10falsefalsefalse
WA2.5falsefalsefalse
ZZ15truetruefalse
ID falsefalsetrue
4falsetruetrue

由於資料不包含空值,下列轉換會依據前述條件產生空值:

您隨後可使用 ISNULL 檢查來移除未通過上述測試的資料列:

delete row: ISNULL('status')

結果:

依據上述測試,輸出資料集會含有一個資料列:

StateQtymismatched_Statevalid_Qtymissing_State_Qtystatus
CA10falsetruefalseok

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁