本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 1. 建立 JSON 組態檔案
需要 JSON 組態檔案才能定義和描述您的自訂視覺化轉換。組態檔案的結構描述如下。
JSON 檔案結構
欄位
-
name: string
– (必要) 用來識別轉換的轉換系統名稱。遵循為 Python 變數名稱 (識別符) 設定的相同命名規則。具體來說,名稱必須以字母或底線開頭,且完全由字母、數字和/或底線組成。 -
displayName: string
– (選用) AWS Glue Studio 視覺化任務編輯器中顯示的轉換名稱。如果未指定displayName
,則name
會用作 AWS Glue Studio 中的轉換名稱。 -
description: string
– (選用) 轉換描述會顯示在 AWS Glue Studio 中,且可供搜尋。 -
functionName: string
– (必要) Python 函數名稱用於識別要在 Python 指令碼中呼叫的函數。 -
path: string
– (選用) Python 來源檔案的完整 Amazon S3 路徑。如果未指定,則 AWS Glue 使用檔案名稱比對功能將 .json 和 .py 檔案配對在一起。例如,JSON 檔案的名稱myTransform.json
會與位於同一個 Amazon S3 位置的 Python 檔案myTransform.py
配對。 -
parameters: Array of TransformParameter object
– (選用) 在 AWS Glue Studio 視覺化編輯器中設定參數時顯示的參數清單。
TransformParameter 欄位
-
name: string
– (必要) 將作為任務指令碼中的具名引數傳遞至 Python 函數的參數名稱。遵循為 Python 變數名稱 (識別符) 設定的相同命名規則。具體來說,名稱必須以字母或底線開頭,且完全由字母、數字和/或底線組成。 -
displayName: string
– (選用) AWS Glue Studio 視覺化任務編輯器中顯示的轉換名稱。如果未指定displayName
,則name
會用作 AWS Glue Studio 中的轉換名稱。 -
type: string
– (必要) 接受常見 Python 資料類型的參數類型。有效值: 'str' | 'int' | 'float' | 'list' | 'bool'。 -
isOptional: boolean
:(選用) 決定參數是否為選用參數。依預設,所有參數皆為必要參數。 -
description: string
– (選用) 描述會顯示在 AWS Glue Studio 中,可協助使用者設定轉換參數。 -
validationType: string
– (選用) 定義驗證此參數的方式。目前僅支援規則運算式。依預設,系統會將驗證類型設定為RegularExpression
。 -
validationRule: string
– (選用) 在validationType
設定為RegularExpression
時,用於在提交之前驗證表單輸入的規則運算式。規則運算式語法必須相容於 RegExp Ecmascript 規格。 -
validationMessage: string
– (選用) 驗證失敗時顯示的訊息。 -
listOptions: An array of TransformParameterListOption object
或string
或字串值 "column":(選用) 用於在單選或複選 UI 控制中顯示的選項。接受逗號分隔值清單或TransformParameterListOption
類型的強型別 JSON 物件。您也可以透過指定字串值 "column" 動態填入父節點結構描述中的資料欄清單。 -
listType: string
– (選用) 定義類型 = 'list' 的選項類型。有效值: 'str' | 'int' | 'float' | 'list' | 'bool'。接受常見 Python 資料類型的參數類型。
TransformParameterListOption 欄位
-
value: string | int | float | bool
– (必要) 選項值。 -
label: string
- (可選) 在選取下拉式選單中顯示的選項標籤。
AWS Glue Studio 中的轉換參數
依預設,除非參數在 .json 檔案中標記為 isOptional
,否則參數為必要項。在 AWS Glue Studio 中,參數會顯示在 Transform (轉換) 索引標籤中。範例顯示使用者定義的參數,例如電子郵件地址、電話號碼、年齡、性別和原籍國家/地區。
您可以在 validationMessage
中指定 validationRule
參數並指定驗證訊息,使用 json 檔案中的規則運算式強制執行 AWS Glue Studio 中的某些驗證。
"validationRule": "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$", "validationMessage": "Please enter a valid US number"
注意
由於驗證發生在瀏覽器中,您的規則運算式語法必須相容於 RegExp Ecmascript 規格
新增驗證可防止使用者儲存具有錯誤之使用者輸入的任務。AWS Glue Studio 顯示驗證訊息,如範例所示:
系統會根據參數組態在 AWS Glue Studio 中顯示參數。
-
如果
type
是str
、int
或float
中的任何一項,則會顯示文字輸入欄位。例如,螢幕擷取畫面會顯示「電子郵件地址」和「您的年齡」參數的輸入欄位。 -
如果
type
為bool
,則會顯示核取方塊。 -
如果
type
為str
且提供listOptions
,則會顯示單一選取清單。 -
如果
type
為list
和listOptions
且提供listType
,則會顯示多選清單。
顯示資料欄選取器作為參數
如果組態要求使用者從結構描述選擇資料欄,您可以顯示資料欄選取器,讓使用者不需要輸入資料欄名稱。透過將 listOptions
欄位設定為 "column",AWS Glue Studio 會根據父節點輸出結構描述動態顯示資料欄選取器。AWS Glue Studio 可以顯示單個或多個資料欄選取器。
下列範例使用結構描述:
若要定義「自訂視覺化轉換」參數以顯示單一資料欄:
-
在您的 JSON 檔案中,對於
parameters
物件,將listOptions
值設為 "column"。這可讓使用者從 AWS Glue Studio 中的點選清單中選擇資料欄。 -
您也可以透過將參數定義為以下項目來允許選取多個資料欄:
-
listOptions: "column"
-
type: "list"
-