找出無效資料

將內容提供給目標系統之前,您可能會遇到必須修正的資料結構或資料格式問題。您可以使用本節所述的方法,來找出資料內容或資料類型設定的問題。

尋找不相符值

當 Cloud Dataprep by TRIFACTA® 評估資料集樣本時,會依據預期值來解釋資料欄中的值。依據資料欄的指定資料類型和內部模式比對,值可分成有效、不相符或遺漏等三種類別。這些值的類別會在每個資料欄的頂端以細長條表示。

  • 不相符值為其資料類型似乎與資料欄指定類型不同的任何值。例如,如果 San Francisco 值出現在郵遞區號類型的資料欄中,系統會將它標示為不相符值。

在資料品質長條圖中,不相符值會以紅色標示:

提示:值經過系統檢查的類型會顯示在資料品質長條圖的左上方。下列範例顯示的資料類型是 ZIP,代表美國郵遞區號資料。

圖:不相符的值以紅色表示

提示:開始根據不相符的值對資料執行轉換之前,請檢查這些資料欄的資料類型,確保資料類型都正確無誤。詳情請參閱支援的資料類型

提示:在「轉換器」頁面中,按一下資料欄資料品質長條圖中的不相符值,即可查看相關計數、在資料格線的資料列中將這些值醒目顯示,並觸發一組建議供您檢視。

產生不相符值的原因很多:

  • 在來源系統中輸入錯誤的值。
  • 來源系統可能會在輸出時發生錯誤,特別在使用自訂結構來產生匯出資料時。
  • 不正確的使用資料欄分隔符號,可能會導致欄位在個別資料列中發生偏移。
  • 某組資料列的資料結構可能有問題。
  • 資料欄的指定資料類型有誤。

提示:清理無效資料時,應從大問題著手,再處理小問題。如果資料欄值被分類為不相符值的比例較高,表示該資料的問題可能較大。請在受影響的資料列中,驗證其他資料欄值是否也屬於不相符值。首先應檢查和修正這些資料列,修正後,其他資料列中的其他不相符值可能也會隨之修正。

修正不相符值的方法

當您發現資料集裡有不相符的資料時,可以採用下列基本的修正方法:

  1. 變更資料類型。如果不相符的資料列數比例很高,您可能需要變更資料類型才能取得更好的比對結果。

  2. 以常數值取代不相符值。 只有在確定該值應為單一且一致的值時,這個方法才適用。選取資料欄中不相符的值,然後選取其中一個醒目顯示的不相符值。使用 replace 轉換,將不相符值變更為正確值。

    提示:若要修正獨立發生的不相符值問題,最簡單的方式是在資料格線中將不相符值醒目顯示。畫面上會顯示一組新的建議。您可以選取 replace 建議,然後將它修改為包含取代值。

  3. 使用其他資料欄的值來設定值。您可以使用 set 轉換,以其他資料欄的對應值來取代不相符值,藉以修正不相符問題。

  4. 使用函式。 將函式與 set 轉換搭配使用來取代不相符值,藉以修正資料。

  5. 刪除資料列。 選取不相符值並使用 delete 轉換以移除有問題的資料列。
  6. 暫時隱藏資料欄。 如果您要將焦點放在其他內容上,您可以從顯示畫面中移除該資料欄。從資料欄下拉式選單中選取 [隱藏]。請注意,隱藏的資料欄還是會出現在任何產生的輸出中。
  7. 刪除資料欄。 如果資料欄資料非必要或無法使用,您可以從資料集捨棄整個資料欄。從資料欄下拉式選單中選取 [Delete] (刪除)

提示:請儘早刪除非必要的資料欄。資料愈少,應用程式的運作就愈容易,工作執行效能也會愈高。

注意:您可能需要在資料集裡多次檢查並修正不相符資料的問題。例如,當您拆分巢狀資料時,可能會發現還有其他不相符的值。同樣地,聯結和查詢也可以找出資料類型設定不相符的問題。

轉換代碼中的不相符值

您可以在轉換中使用參照來識別不相符的資料,如下所示:

轉換名稱 Edit column with formula
參數:資料欄 postal_code
參數:公式 IF(ISMISMATCHED(postal_code, ['Zipcode']),'00000',postal_code)

請注意,括住值的單引號很重要,因為有這個符號,系統才會將此值識別為常數。

提示:在上述指令範例中,請注意 Zipcode 值標識用來比對資料欄值的資料類型。在此案例中,為了讓資料更明確,您可以依據資料類型 Integer 來識別資料欄中不相符的值,因為所有的美國郵遞區號都是正整數。若要進一步瞭解如何在步驟中明確參照資料類型,請參閱有效的資料類型字串

修剪資料

提示:若要刪除資料欄中的空格,請使用下列轉換指令:

轉換名稱 Edit column with formula
參數:資料欄 column1
參數:公式 TRIM($col)

這個步驟可能會增加遺漏值 (只含有空格字元的值) 的數量,以及相符值 (在英數值之前和之後含有空格的值) 的例項數量。

使用其他資料欄來設定值

您可以使用其他資料欄的值來取代目前資料欄中的不相符值。以之前的範例來說,不相符的郵遞區號會替換成父系實體中郵遞區號資料欄 (parent_postal_code) 所含的對應值:

轉換名稱 Edit column with formula
參數:資料欄 parent_postal_code
參數:公式 IF(ISMISMATCHED(postal_code, ['Zipcode']),'00000',postal_code)

使用函式來修正不相符的值

在轉換中,您可以插入預先定義的函式來取代不相符的資料值。在以下範例中,函式會計算 score 資料欄中所有值的平均值,以所得的結果值來替換該資料欄中的不相符值:

轉換名稱 Edit column with formula
參數:資料欄 score
參數:公式 IF(ISMISMATCHED(score, ['Decimal']),AVERAGE(score),score)

提示:您也可以使用 IFMISMATCHED 函式來測試是否有不相符值。但是和上述建構的不同之處在於,當值符合列出的資料類型時,IFMISMATCHED 不支援 else 子句。詳情請參閱 IFMISMATCHED 函式

無效資料類型設定

提示:作為字串資料類型的資料最容易管理,尤其是日期資料。Cloud Dataprep by TRIFACTA 有許多函式可供您部署,來管理字串。資料經過適當格式化之後,您可以將該資料變更成適當的資料類型。若立即變更資料類型,可能會在重新格式化和擴增資料時遇到一些問題。請將這個步驟留到最後執行。

若是資料欄的不相符值比例偏高,則指定給資料欄的資料類型可能有誤。在以下範例中,含有降雨量 (以英吋為單位) 資料的資料欄被誤設為布林資料類型:

圖:設定錯誤的資料欄資料類型

若要變更資料欄的資料類型,請在資料欄的頂端點選類型 ID,然後選取新的類型。在此案例中,您可以選取 Decimal

注意:變更類型後,請再次檢查資料品質長條圖。如果還是有不相符值,請檢查這些值以瞭解是否可以將這些不相符值的來源分類。

如前一範例所示,降雨量資料欄含有設為 T 的值,這可能是 true 的縮寫。當資料類型設為 Decimal 時,系統就會立即將這些值標示為不相符的資料。若要修正此問題,您可以使用 set 轉換,將所有 T 值替換成 1.0

在資料欄中選取一個 T 例項,然後按一下設定建議資訊卡。按一下 [修改]。在轉換指令的 value 中,輸入 1.0。轉換指令應如下所示:

轉換名稱 Edit column with formula
參數:資料欄 PrecipitationIn
參數:公式 IFMATCHES([PrecipitationIn], `{start}{bool}{end}`),'1.0',PrecipitationIn)

提示:如果可以的話,請檢查並參照來源系統產生的可用資料集結構定義。如果來源系統中的資料類型也有錯誤,則應同時在來源系統中修正此問題,如此日後從該系統匯出的資料才會顯示正確的類型。

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

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

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