管理字串長度

在此範例中,目標系統對名字和姓氏欄位的最大長度設有限制。您可以使用下列轉換指令,依據長度限制來評估和截斷字串。

測試字串長度

first_name 欄位長度超過 32 個字元時,您可以使用下列指令撰寫 TOO LONG 訊息:

轉換名稱 Edit column with formula
參數:資料欄 String_test
參數:公式 IF(LEN(first_name) > 32, 'TOO LONG',String_test)

截斷字串

上述測試可讓您評估長度太長的個別字串,以查看這些字串是否有錯誤或有其他方式可以縮短長度。對於您無法輕易解決這些問題的大型資料集,您只需選擇滿 32 個字元就截斷字串長度:

轉換名稱 Edit column with formula
參數:資料欄 *
參數:公式 LEFT($col,32)

在上述指令中,您可以使用萬用字元來比對資料集中的所有資料欄。系統已將替換值定義為來源資料欄 ($col) 中的前 32 個字元。依據 LEFT 函式的定義,長度不超過 32 個字元的資料欄不受影響。

提示:如果您要截斷的欄位是作為資料集的索引鍵,您應在套用截斷作業後驗證索引鍵是否依然含有不重複的值。例如,如果 first_namelast_name 的組合是資料集中不重複的 ID,您應驗證含有這些 ID 的資料欄所含的值是否不重複。

特殊字串長度

在某些情況下,您可能想要限制文字字串的長度。在此範例中,資料集含有一個郵遞區號值資料欄,其中部分值是郵遞區號加 4 位數代碼格式。來源資料可能如下所示:

zip_code
94104
94104-2218
94105

為確保一致性,您可能想要限制資料欄僅使用郵遞區號的前五個數字。

步驟:

  1. 從其中一個九位數的郵遞區號中選取前五個數字。
  2. 在建議資訊卡中,選取「Extract」資訊卡。
  3. 選取下列變式:

    轉換名稱 Extract text or pattern
    參數:要從中擷取內容的資料欄 zipcode
    參數:選項 Custom text or pattern
    參數:要擷取的文字 `{zip}`
    參數:之後開始擷取 `{start}`
  4. 按一下 [Add] (新增)

上述解決方案參照兩個 Cloud Dataprep 模式以識別儲存格值的元素。詳情請參閱文字配對

如需使用更普遍的作法,您可以使用下列部分字串函式來限制資料長度。如果值的長度短於指定字串長度,則該值保持不變。

注意:視資料欄的資料類型而定,縮短值長度的轉換可能會產生不相符的值或遺漏值。您應驗證沒有新的遺漏或不相符的值產生。

使用最右邊的值

使用下列轉換指令,可將字串縮短成任何值的最右邊 6 個字元:

轉換名稱 Edit column with formula
參數:資料欄 prodID
參數:公式 RIGHT(prodID, 6)

子字串值

SUBSTRING 函式可讓您指定使用字串字元的特定子集。您可以指定值中第一個字元的索引,以及要併入的後續字元數。例如,將此函式套用到 countries 資料欄中的 United States of America 值時,下列轉換指令會將新值設為 States

轉換名稱 Edit column with formula
參數:資料欄 countries
參數:公式 SUBSTRING(countries, 7, 6)

請注意,索引值從 0 開始;若要從值的開頭擷取,請將上述指令中的 7 取代為 0

其他字串函式

Wrangle 支援其他可用來轉換字串值的函式。請參閱字串函式

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

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

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