

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

# PySpark 延伸模組類型
<a name="aws-glue-api-crawler-pyspark-extensions-types"></a>

AWS Glue PySpark 延伸模組所使用的類型。

## DataType
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-datatype"></a>

其他 Glue AWS 類型的基底類別。

**`__init__(properties={})`**
+ `properties` – 資料類型的屬性 (選用)。

 

**`typeName(cls)`**

傳回 AWS Glue 類型類別的類型 (亦即從尾端移除「Type」的類別名稱)。
+ `cls` – 從 AWS Glue 衍生而來的 `DataType` 類別執行個體。

 

`jsonValue( )`

傳回 JSON 物件，其中包含類別的資料類型和屬性：

```
  {
    "dataType": typeName,
    "properties": properties
  }
```

## AtomicType 和 simple 衍生性產品
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype"></a>

繼承自及延伸 [DataType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-datatype) 類別，並做為所有 AWS Glue 不可部分完成資料類型的基本類別。

**`fromJsonValue(cls, json_value)`**

以來自 JSON 物件的值，初始化類別執行個體。
+ `cls` – 要初始化的 AWS Glue 類別執行個體。
+ `json_value` – 用於載入金鑰/值對的來源 JSON 物件。

 

以下類型為 [AtomicType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype) 類別的簡單衍生產品：
+ `BinaryType` – 二進位資料。
+ `BooleanType` – 布林值。
+ `ByteType` – 位元組值。
+ `DateType` – 日期時間值。
+ `DoubleType` – 浮點雙精度值。
+ `IntegerType` – 整數值。
+ `LongType` – 長整數值。
+ `NullType` – null 值。
+ `ShortType` – 短整數值。
+ `StringType` – 文字字串。
+ `TimestampType` – 時間戳記值 (單位通常為 1970/1/1 起的秒數)。
+ `UnknownType` – 無法識別類型的值。

## DecimalType(AtomicType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-decimaltype"></a>

沿用自和延伸 [AtomicType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype) 類別來代表十進位數字 (以十進位數字表示，而非二進位 base-2 數字)。

**`__init__(precision=10, scale=2, properties={})`**
+ `precision` – 十進位數字的位數 (選用，預設為 10)。
+ `scale` – 小數點右邊的位數 (選用，預設為 2)。
+ `properties` – 十進位數字段屬性 (選用)。

## EnumType(AtomicType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-enumtype"></a>

繼承自和延伸 [AtomicType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype) 類別，以表示有效選項的列舉。

**`__init__(options)`**
+ `options` – 列舉的選項清單。

##  集合類型
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-collections"></a>
+ [ArrayType(DataType)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-arraytype)
+ [ChoiceType(DataType)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-choicetype)
+ [MapType(DataType)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-maptype)
+ [Field(Object)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-field)
+ [StructType(DataType)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-structtype)
+ [EntityType(DataType)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-entitytype)

## ArrayType(DataType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-arraytype"></a>

**`__init__(elementType=UnknownType(), properties={})`**
+ `elementType` – 陣列中的元素類型 (選用，預設為 UnknownType)。
+ `properties` – 陣列的屬性 (選用)。

## ChoiceType(DataType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-choicetype"></a>

**`__init__(choices=[], properties={})`**
+ `choices` – 可能的選項清單 (選用)。
+ `properties` – 這些選項的屬性 (選用)。

 

**`add(new_choice)`**

將選項新增至可能的選項清單。
+ `new_choice` – 要加入至可能選項清單的選項。

 

**`merge(new_choices)`**

合併新選項的清單與現有的選項清單。
+ `new_choices` – 合併新選項與現有選項的清單。

## MapType(DataType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-maptype"></a>

**`__init__(valueType=UnknownType, properties={})`**
+ `valueType` – 映射中的值類型 (選用，預設為 UnknownType)。
+ `properties` – 映射的屬性 (選用)。

## Field(Object)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-field"></a>

從衍生自 [DataType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-datatype) 的物件建立欄位物件。

**`__init__(name, dataType, properties={})`**
+ `name` – 要指派到欄位的名稱。
+ `dataType` – 要從中建立欄位的物件。
+ `properties` – 欄位的屬性 (選用)。

## StructType(DataType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-structtype"></a>

定義資料結構 (`struct`)。

**`__init__(fields=[], properties={})`**
+ `fields` – 要包含在結構中的欄位 (`Field` 類型) 清單 (選用)。
+ `properties` – 結構的屬性 (選用)。

 

**`add(field)`**
+ `field` – 要新增到架構的物件類型 `Field`。

 

**`hasField(field)`**

如果此結構有相同名稱的欄位，將傳回 `True`，否則將傳回 `False`。
+ `field` – 欄位名稱，或名稱已使用的物件類型 `Field`。

 

**`getField(field)`**
+ `field` – 欄位名稱，或使用其名稱的物件類型 `Field`。如果結構有相同名稱的欄位，將會傳回。

## EntityType(DataType)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-entitytype"></a>

`__init__(entity, base_type, properties)`

此類別尚未實作。

##  其他類型
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-other-types"></a>
+ [DataSource(object)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-data-source)
+ [DataSink(object)](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-data-sink)

## DataSource(object)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-data-source"></a>

**`__init__(j_source, sql_ctx, name)`**
+ `j_source` – 資料來源。
+ `sql_ctx` – SQL 內容。
+ `name` – 資料來源名稱。

 

**`setFormat(format, **options)`**
+ `format` – 要用於設定資料來源的格式。
+ `options` – 要用於設定資料來源的選項集合。如需有關格式選項的詳細資訊，請參閱 [AWS Glue for Spark 中的輸入與輸出的資料格式選項](aws-glue-programming-etl-format.md)。

 

`getFrame()`

傳回資料來源的 `DynamicFrame`。

## DataSink(object)
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-data-sink"></a>

**`__init__(j_sink, sql_ctx)`**
+ `j_sink` – 要建立的目的地。
+ `sql_ctx` – 資料目的地的 SQL 內容。

 

**`setFormat(format, **options)`**
+ `format` – 要用於設定資料目的地的格式。
+ `options` – 要用於設定資料目的地的選項集合。如需有關格式選項的詳細資訊，請參閱 [AWS Glue for Spark 中的輸入與輸出的資料格式選項](aws-glue-programming-etl-format.md)。

 

**`setAccumulableSize(size)`**
+ `size` – 要設定的 accumulable 大小 (以位元組為單位)。

 

**`writeFrame(dynamic_frame, info="")`**
+ `dynamic_frame` – 所要撰寫的 `DynamicFrame`。
+ `info` – 有關 `DynamicFrame` 的資訊 (選用)。

 

**`write(dynamic_frame_or_dfc, info="")`**

撰寫 `DynamicFrame` 或 `DynamicFrameCollection`。
+ `dynamic_frame_or_dfc` – 要撰寫的 `DynamicFrame` 物件或 `DynamicFrameCollection` 物件。
+ `info` – 有關要撰寫的 `DynamicFrame` 或 `DynamicFrames` 的資訊 (選用)。