

# Tipos de extensão do PySpark
<a name="aws-glue-api-crawler-pyspark-extensions-types"></a>

Os tipos usados pelas extensões de PySpark do AWS Glue.

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

A classe base para outros tipos do AWS Glue.

**`__init__(properties={})`**
+ `properties` – Propriedades do tipo de dados (opcional).

 

**`typeName(cls)`**

Retorna o tipo da classe do AWS Glue (ou seja, o nome da classe com "Tipo" removido do final).
+ `cls` – Uma instância de classe do AWS Glue derivada de `DataType`.

 

`jsonValue( )`

Retorna um objeto JSON que contém o tipo de dados e as propriedades da classe:

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

## Derivativos AtomicType e Simple
<a name="aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype"></a>

Herda e estende a classe [DataType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-datatype) e serve como a classe base para todos os tipos de dados atômicos do AWS Glue.

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

Inicializa uma instância de classe com valores de um objeto JSON.
+ `cls` – Uma instância de classe de tipo do AWS Glue a ser inicializada.
+ `json_value` – O objeto JSON de onde os pares de valor-chave serão carregados.

 

Os seguintes tipos são derivados simples da classe [AtomicType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype):
+ `BinaryType` – Dados binários.
+ `BooleanType` – Valores boolianos.
+ `ByteType` – Um valor de bytes.
+ `DateType` – Um valor de data e hora.
+ `DoubleType` – Um valor com ponto flutuante duplo.
+ `IntegerType` – Um valor inteiro.
+ `LongType` – Um valor inteiro extenso.
+ `NullType` – Um valor nulo.
+ `ShortType` – Um valor inteiro curto.
+ `StringType` – Uma string de texto.
+ `TimestampType` – Um valor de data e hora (geralmente em segundos, a partir de 01/01/1970).
+ `UnknownType` – Um valor de tipo não identificado.

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

Herda e estende a classe [AtomicType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype) para representar um número decimal (um número expresso em dígitos decimais, em oposição aos números binários de base 2).

**`__init__(precision=10, scale=2, properties={})`**
+ `precision` - O número de dígitos no número decimal (opcional; o padrão é 10).
+ `scale` – O número de dígitos à direita da vírgula decimal (opcional, o padrão é 2).
+ `properties` – As propriedades do número decimal (opcional).

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

Herda e estende a classe [AtomicType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-atomictype) para representar uma enumeração de opções válidas.

**`__init__(options)`**
+ `options` – Uma lista de opções sendo enumeradas.

##  tipos de coleção
<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` – O tipo dos elementos na matriz (opcional, o padrão é UnknownType).
+ `properties` – Propriedades da matriz (opcional).

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

**`__init__(choices=[], properties={})`**
+ `choices` – Uma lista das opções possíveis (opcional).
+ `properties` – As propriedades dessas opções (opcional).

 

**`add(new_choice)`**

Adiciona uma nova opção à lista de opções possíveis.
+ `new_choice` – A opção a ser adicionada à lista de opções possíveis.

 

**`merge(new_choices)`**

Combina uma lista de novas opções com a lista de opções existentes.
+ `new_choices` – Uma lista de novas opções a ser combinada com a lista de opções existentes.

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

**`__init__(valueType=UnknownType, properties={})`**
+ `valueType` – O tipo dos valores no mapa (opcional, o padrão é UnknownType).
+ `properties` – Propriedades do mapa (opcional).

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

Cria um objeto de campo de um objeto que deriva de [DataType](#aws-glue-api-crawler-pyspark-extensions-types-awsglue-datatype).

**`__init__(name, dataType, properties={})`**
+ `name` – O nome a ser atribuído ao campo.
+ `dataType` – O objeto a ser criado a partir de um campo.
+ `properties` – Propriedades do campo (opcional).

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

Define uma estrutura de dados (`struct`).

**`__init__(fields=[], properties={})`**
+ `fields` – Uma lista dos campos (do tipo `Field`) a ser incluída na estrutura (opcional).
+ `properties` – Propriedades da estrutura (opcional).

 

**`add(field)`**
+ `field` – Um objeto do tipo `Field` a ser adicionado à estrutura.

 

**`hasField(field)`**

Retorna `True` se essa estrutura tiver um campo com o mesmo nome ou `False` caso contrário.
+ `field` – O nome de um campo ou um objeto do tipo `Field` cujo nome está sendo usado.

 

**`getField(field)`**
+ `field`: um nome de um campo ou um objeto do tipo `Field` cujo nome está sendo usado. Se a estrutura tiver um campo com o mesmo, ele será retornado.

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

`__init__(entity, base_type, properties)`

Esta classe ainda não foi implementada.

##  outros tipos
<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` – A fonte de dados.
+ `sql_ctx` – O contexto SQL.
+ `name` – O nome da fonte de dados.

 

**`setFormat(format, **options)`**
+ `format` – O formato a ser configurado para a fonte de dados.
+ `options` – Uma coleção de opções a ser configurada para a fonte de dados. Para obter mais informações sobre essas opções de formato, consulte [Opções de formato de dados para entradas e saídas no AWS Glue para Spark](aws-glue-programming-etl-format.md).

 

`getFrame()`

Retorna um `DynamicFrame` para a fonte de dados.

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

**`__init__(j_sink, sql_ctx)`**
+ `j_sink` – O depósito a ser criado.
+ `sql_ctx` – O contexto SQL para o depósito de dados.

 

**`setFormat(format, **options)`**
+ `format` – O formato a ser configurado para o depósito de dados.
+ `options` – Uma coleção de opções a ser configurada para o depósito de dados. Para obter mais informações sobre essas opções de formato, consulte [Opções de formato de dados para entradas e saídas no AWS Glue para Spark](aws-glue-programming-etl-format.md).

 

**`setAccumulableSize(size)`**
+ `size` – O tamanho acumulável a ser configurado, em bytes.

 

**`writeFrame(dynamic_frame, info="")`**
+ `dynamic_frame` – O `DynamicFrame` a ser escrito.
+ `info` – Informações sobre o `DynamicFrame` (opcional).

 

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

Escreve `DynamicFrame` ou `DynamicFrameCollection`.
+ `dynamic_frame_or_dfc` – Um objeto `DynamicFrame` ou `DynamicFrameCollection` a ser escrito.
+ `info` – Informações sobre `DynamicFrame` ou `DynamicFrames` a serem escritas (opcional).