Wrangle 語言

Wrangle 是一種網域專屬語言,可用來建構 Cloud Dataprep by TRIFACTA® 中的轉換方案。

Wrangle 方案是由一系列的轉換組成,會套用至您的資料集以便產生結果。

  • 轉換是套用至資料集的單一動作。針對大部分的轉換,您可傳送一或多個參數來定義內容 (資料欄、資料列或條件)。
  • 部分參數支援使用一或多個函式。參數是在資料集內一個或多個資料欄上執行的運算動作。
  • 方案內建於「Transformer」頁面中,請參閱轉換器頁面

當您選取了「Transformer」(轉換器) 頁面上的建議時,所選的項目會轉換為 Wrangle 指令並新增到方案中。

提示:請盡量在資料格線中選取項目,以便建構轉換步驟。這些選取項目會在畫面底部顯示出一系列資訊卡提示。您可以選擇不同的資訊卡,以便為所選的資料指定一種基本轉換指令,再挑選轉換的子類,還可以依需求修改基本的 Wrangle 方案,如需更多資訊,請參閱可預測的轉換總覽

如需更多建議資訊卡的資訊,請參閱建議資訊卡面板

而像是彙整和聯集這類較複雜的轉換,就必須到專用畫面上建立。請參閱轉換器頁面

Wrangle 語法

Wrangle 轉換會按照下列一般語法運作:

(transform) param1:(expression) param2:(expression)

轉換元素說明
轉換

轉換 (名詞或動詞) 是一個關鍵字,可識別您要套用至資料集的變更類型。

  • 在方案步驟中,轉換一律為第一個關鍵字,請參閱下列詳細資訊。

每個步驟中的其他元素則是轉換則是內容比對參數,部分轉換不需要參數。

parameter1:parameter2:

對所有轉換來說,額外參數可以是可選的或必要的。

附註:參數後面一律需加上半形冒號,一個參數僅能在一個轉換步驟中出現一次。

常見參數

根據轉換的不同,可使用一個或多個 valuecolrow 參數。例如,set 轉換可以使用前述的三個參數,或只用 valuecol

轉換元素說明
value:

value 參數存在時,會定義在執行轉換時建立輸出值或儲存值的運算式。

運算式可包含下列組合:

  • 函式會套用來源資料的計算或評估結果,其輸出內容可輸入至資料欄。來源可為常數或資料欄參照。函式參照一律需加上半形括號 (),即使裡面並無參數。請參閱下方的詳情。
  • 運算子是代表數字函式、比較或邏輯運算子的單一字元,比方說加號 (+) 即是新增函數的運算子。如下所示。
  • 常數可以適用引號括住的字串文字 ('mystring')、整數值 (1001)、數字值 (1001.01)、布林值 (truefalse) 或模式。如需更多 Cloud Dataprep 模式的資訊,請參閱文字配對
col:

col 參數存在時,會辨識資料欄名稱或是要套用轉換的資料欄。

部分轉換可能會透過清單、特定範圍 (例如 column1~column5) 或是資料集中所有欄位 (使用萬用字元指標 col: *) 的形式,來支援多重資料欄。

row:row 參數存在時,會定義要進行評估的運算式,以判斷要在哪些資料列上執行轉換。如果資料列運算式在一行資料列上得出 true,就會對該資料列執行轉換。
group:

針對諸如 windowpivotderive 等彙總轉換,group 參數可讓您計算群組值中的彙總函式。舉例來說,您可將 group:repName 套用至轉換,以計算每個步驟的總計銷售額。

附註:如使用 group 參數執行轉換,則會在資料網格中產生非確定性的重新排序。

order:針對諸如 windowpivotderive 等彙總轉換,可使用 order 參數來指定轉換結果的排序依據資料欄。在先前的範例中,您可能會選擇依狀態來排序總計銷售額:order:State

參數輸入

轉換的參數可能會參照以下類型的參數輸入值。

其他的 Cloud Dataprep 資料類型可做為資料欄的的參照。至於這些資料類型的常值,則能以字串的形式插入運算式中。轉換會導致產生的值受到重新推斷,以得到其資料類型。

資料欄參照

對儲存在資料集資料欄內的值的參照。參照資料欄時,可使用資料欄名稱的純文字值。

示例:value 參數會參照 myCol 資料欄。

derive type:single value: myCol as:'myNewCol'

含有空格或特殊字元的資料欄名稱,轉換時必須在前後加上大括弧。

示例:在下面,srcColumn 被重新命名為 src Column,它不需要大括弧,因為新名稱會被擷取為字串常值:

rename type: manual mapping: [srcColumn, 'src Column']

使用空格將資料欄重新命名後,必須在大括弧中引用,以便重新命名為原來的名稱:

rename type: manual mapping: [{src Column},'srcColumn']

函式

有些參數接受函式作為輸出。在計算值或公式的地方,您可以參考 Wrangle 中可以使用的許多函式其中之一。

範例:

derive type:single value:MULTIPLY(3,2) as:'six'

中繼資料變數

Wrangle 支援使用來源資料或資料集部分的變數參照。在下列範例中,系統使用 $col 參照,將 ABS 函式套用至一組資料欄當中的每個資料欄。

set col: val1,val2 value: ABS($col)

$col 傳回目前資料列的值。如要進一步瞭解這些變數,請參閱來源中繼資料參照

巢狀運算式

函式內的個別參數可以是被計算的運算式本身。可以使用常量、其他函式和資料欄參照計算這些巢狀運算式。

示例:計算一個資料欄,其唯一值為 10 除以 3,四捨五入為最接近的整數 (3):

derive type:single value:ROUND(DIVIDE(10,3),0) as:'three'

整數

Integer 資料類型可接受數值範圍內的有效整數值。詳情請參閱支援的資料類型

示例:產生一個叫做 my13 的資料欄,它是整數值 58 的和:

derive type:single value: (5 + 8) as:'my13'

小數

在可接受的數值範圍內,屬於小數資料類型的有效浮點值。詳情請參閱支援的資料類型

示例:產生一個資料欄,用於計算 diameter 資料欄中各值的近似周長:

derive type:single value: (3.14159 * diameter) as: 'circumference'

布林值

truefalse 值。

示例:如果 order 資料欄中的值大於 1,000,000,則 bigOrder 資料欄中的值為 true

derive type:single value:IF(order > 1000000, true, false) as:'bigOrder'

字串

字串常值屬於基準資料類型。字串常值必須以單引號括住。

示例:建立一個叫做 StringCol 的資料欄,其中包含 myString 這個值。

derive type:single value:'myString' as:'StringCol'

Cloud Dataprep 模式

Cloud Dataprep by TRIFACTA 支援特殊語法,可簡化字串值比對模式的產生流程。

模式必須以重音符號括住 (`MyPattern`)。詳情請參閱文字比對

示例:MyData 資料欄取出最多 10 個與美國身分證號碼的基本模式 (XXX-XX-XXXX) 相符的值:

extract col: MyData on:`%{3}-%{2}-%{4}` limit:10

規則運算式

規則運算式是用來定義比對模式的常見標準,是一項強大的工具,但是也很容易設定錯誤。

規則運算式必須以正斜線括住 (/MyPattern/)。

示例:qty 資料欄中刪除所有的兩位數字:

replace col: qty on: /^\d$|^\d\d$/ with: '' global: true

日期時間

符合日期時間資料類型規定的有效日期值或時間值。請參閱支援的資料類型

可以使用特定的格式化字串將日期時間值格式化。請參閱 DATEFORMAT 函式

示例:產生一個新資料欄,其中包含以 yyyymmdd 格式重新格式化的 myDate 資料欄中的值:

derive type:single value:DATEFORMAT(myDate, 'yyyymmdd')

陣列

符合陣列資料類型的有效陣列值。

示例:

[0,1,2,3,4,5,6,7,8]

請參閱支援的資料類型

示例:產生一個資料欄,其中包含列出的陣列的元素數 (7):

derive type:single value: ARRAYLEN('["red", "orange", "yellow", "green", "blue", "indigo", "violet"]')

物件

符合物件資料類型的一組有效值。

示例:

{"brand":"Subaru","model":"Impreza","color","green"}

請參閱支援的資料類型

示例:為物件中每一個指定鍵值 (brandmodelcolor) 個別產生資料欄,其中含有各資料列的對應值:

unnest col:myCol keys:'brand','model','color'

Wrangle 和應用程式之間的互動

  1. 當您在轉換指令製作工具中建構 Wrangle 步驟時,將會為您驗證語法。含有無效語法的步驟無法加入。
    1. 錯誤訊息會回報至應用程式,讓您可以立即修改以更正問題。
    2. 預先輸入支援服務會引導您使用可支援的轉換、函數及資料欄參照。
    3. 如需更多資訊,請參閱轉換指令製作工具
  2. 當輸入有效的轉換步驟時,就會在資料格線中提供預覽結果。
    1. 將轉換套用到資料格線中的樣本,就會產生預覽。

      附註:產生的輸出結果只會套用至資料格線中顯示的值。只有在執行工作時,才會將函式套用到整格資料集上。

    2. 如果預覽的轉換無效,資料格線會顯示為灰色。
    3. 如需更多資訊,請參閱轉換預覽
  3. 將轉換新增至方案時:
    1. 轉換會套用到應用程式中的樣本上,且資料格線會更新至最新狀態。
    2. 會使用新的值和計數更新資料欄的直方圖。
    3. 可能會重新推斷受影響的資料欄的資料類型。
  4. 進行變更:
    1. 有需要時,隨時都可以編輯方案中的轉換步驟。
      1. 在編輯方案中的轉換步驟時,資料格線的內容會隨之變更,以顯示資料在您編輯的步驟的預覽時點下的狀態。
      2. 所有後續步驟仍為方案的一部分,只是尚未套用到樣本上。
      3. 您可以在現有的步驟之間再插入方案步驟。
    2. 在刪除方案步驟時,其狀態仍會停留在步驟移除的時點。
      1. 如果需要,您可以插入新步驟。
      2. 完成編輯後,請選取方案的最後一個步驟,即會在資料格線中顯示出所有轉換步驟的結果。您所做的變更可能會導致部分方案步驟變為無效。
    3. 請參閱方案面板

轉換

轉換 (名詞或動詞) 是套用至您資料中資料列或資料欄的一種動作,是可以套用至資料集的一組基本變更作業。如需詳細資訊,請參閱轉換

函式類別

函式是一種動作,可以做為轉換步驟的一部分,套用到一組值上。函數可以套用到轉換中像是字串等特定資料類型的值上,也可以套用到轉換類型上,例如匯總和窗型函式等類別。函式不能不經過轉換就套用到資料上。

函式類別說明

匯總函式

這類函式用來執行資料的匯總計算,例如總和、平均及標準差。
比較函式比較函式會啟動兩項資料元素之間的評估,通常為巢狀 (如物件或陣列) 元素。
數學函式使用各種數學函式和數字運算子在資料上執行運算。
日期函式使用這些函式從日期時間資料類型物件上擷取資料,或執行運算。
字串函式用於操控字串,包含在字串內尋找子字串。
巢狀函式這類函式是專門用來協助疊加巢狀資料 (例如物件、陣列或 JSON 元素)。
類型函式使用類型函式來識別有效、遺漏、不相符的值及空值。
窗型函式窗型函式可在資料集內的相關資料窗體中執行運算。
其他函式不符合其他類別的雜項函式。

運算子類別

運算子是代表算術函式的單一字元,舉例來說,加號 (+) 代表新增函式。

運算子類別說明
邏輯運算子AND、OR 和 NOT 運算子
數字運算子加、減、乘和除
比較運算子使用大於、等於、不等於和小於的運算子,對兩個值進行比較
第三運算子使用第三運算子可在轉換中建立「if/then/else」的邏輯。

說明文件

Wrangle 的說明文件也可以透過 Cloud Dataprep by TRIFACTA 取得,請選取 [Help] (說明) 選單 > [Product Docs] (產品說明文件)

提示:搜尋轉換和函式的示例時,請嘗試在產品說明文件網站上使用下列格式作為搜尋字詞:

  • 轉換:wrangle_transform_NameOfTransform
  • 函式:wrangle_function_NameOfFunction

所有主題

主題:

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

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

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