

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# ResolveChoice 類別
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice"></a>

解析 `DynamicFrame` 內的選擇類型。

## 範例
<a name="pyspark-ResolveChoice-example"></a>

建議您使用 [`DynamicFrame.resolveChoice()`](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-resolveChoice) 方法來處理 `DynamicFrame` 中包含多個類型的欄位。若要檢視程式碼範例，請參閱 [範例：使用 resolveChoice 來處理包含多種類型的資料欄](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md#pyspark-resolveChoice-example)。

## 方法
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-_methods"></a>
+ [\_\_call\_\_](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-__call__)
+ [apply](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-apply)
+ [name](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-name)
+ [describeArgs](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeArgs)
+ [describeReturn](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeReturn)
+ [describeTransform](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeTransform)
+ [describeErrors](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeErrors)
+ [describe](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describe)

## \_\_call\_\_(frame, specs = none, choice = "", transformation\_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-__call__"></a>

提供資訊以解析 `DynamicFrame` 內模棱兩可的類型。它會傳回產生的 `DynamicFrame`。
+ `frame` – 要解析其中選擇類型的 `DynamicFrame` (必要)。
+ `specs` – 要解析的特定模棱兩可項目的清單，形式皆為 tuple:`(path, action)`。`path` 值代表模棱兩可的特定元素，`action` 值則代表對應的解析動作。

  您只能使用 `spec` 和 `choice` 參數的其中一項。如果 `spec` 參數不是 `None`，則 `choice` 參數必須為空字串。相反地，如果 `choice` 不是空字串，則 `spec` 參數必須為 `None`。如果未提供任何參數， AWS Glue 會嘗試剖析結構描述，並使用它來解決模棱兩可的情況。

  可在 `specs` 元組的 `action` 部分中指定下列解析策略的其中一種：
  + `cast` - 可讓您指定轉換的目標類型 (例如 `cast:int`)。
  + `make_cols` – 透過將資料壓平合併來解析可能的模棱兩可項目。例如，如果 `columnA` 可能是 `int` 或 `string`，則在得出的 `DynamicFrame` 中，解析動作會產生名為 `columnA_int` 和 `columnA_string` 的兩個欄。
  + `make_struct` - 藉由以結構表示資料，來解決可能的模棱兩可項目。舉例來說，如果欄中的資料可能是 `int` 或 `string`，則使用 `make_struct` 動作會在結果的 `DynamicFrame` 中產生結構的欄，每個欄同時包含 `int` 和 `string`。
  + `project` - 在產生的 `DynamicFrame` 中只擷取指定種類的值，以此解析可能的模棱兩可項目。例如，如果 `ChoiceType` 欄中的資料可能是 `int` 或 `string`，指定 `project:string` 動作會從並非 `string` 類型產生的 `DynamicFrame` 捨棄欄。

  若 `path` 識別到陣列，在陣列的名稱後放置空白的方括號以避免模棱兩可的狀況。例如，假設您使用如下結構化的資料：

  ```
  "myList": [
    { "price": 100.00 },
    { "price": "$100.00" }
  ]
  ```

  您可以選取數值而不是價格字串版本，方法是將 `path` 設定為 `"myList[].price"`，且將 `action` 設定為 `"cast:double"`。
+ `choice` – 當 `specs` 參數為 `None` 時的預設解析動作。如果 `specs` 參數不是 `None`，則此值只能為空字串，不能設定成其他的值。

  除了上述 `specs` 動作，此引數也支援下列動作：
  + `MATCH_CATALOG` – 嘗試將每個 `ChoiceType` 投射至指定 Data Catalog 資料表中的對應類型。
+ `database` – 要與 `MATCH_CATALOG` 選項搭配使用的 AWS Glue Data Catalog 資料庫 `MATCH_CATALOG` ( 需要）。
+ `table_name` – 要與 `MATCH_CATALOG`動作搭配使用的 AWS Glue Data Catalog 資料表名稱 `MATCH_CATALOG` ( 需要）。
+ `transformation_ctx` – 用於識別狀態資訊的唯一字串 (選用)。
+ `info` – 與轉換中的錯誤相關的字串 (選用)。
+ `stageThreshold` – 在錯誤輸出之前，轉換作業中可發生錯誤的次數上限 (選用)。預設為零。
+ `totalThreshold` – 在處理錯誤輸出之前，整體作業可發生錯誤的次數上限 (選用)。預設為零。

## apply(cls, \*args, \*\*kwargs)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-apply"></a>

繼承自 `GlueTransform` [apply](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-apply)。

## name(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-name"></a>

繼承自 `GlueTransform` [name](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-name)。

## describeArgs(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeArgs"></a>

繼承自 `GlueTransform` [describeArgs](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeArgs)。

## describeReturn(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeReturn"></a>

繼承自 `GlueTransform` [describeReturn](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeReturn)。

## describeTransform(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeTransform"></a>

繼承自 `GlueTransform` [describeTransform](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeTransform)。

## describeErrors(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeErrors"></a>

繼承自 `GlueTransform` [describeErrors](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeErrors)。

## describe(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describe"></a>

繼承自 `GlueTransform` [describe](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describe)。