

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Associar resultados de predição a registros de entrada
<a name="batch-transform-data-processing"></a>

Ao fazer predições em um conjunto de dados grande, você pode excluir atributos que não são necessários para a predição. Depois que as predições foram feitas, você pode associar alguns dos atributos excluídos a essas predições ou outros dados de entrada no relatório. Ao usar a transformação em lote para executar essas etapas de processamento de dados, geralmente você pode eliminar o pré-processamento ou o pós-processamento adicional. Você pode usar arquivos de entrada somente nos formatos JSON e CVS. 

**Topics**
+ [

## Fluxo de trabalho para associar inferências a registros de entrada
](#batch-transform-data-processing-workflow)
+ [

## Uso do processamento de dados em trabalhos de transformação em lotes
](#batch-transform-data-processing-steps)
+ [

## JSONPath Operadores suportados
](#data-processing-operators)
+ [

## Exemplos de transformação em lote
](#batch-transform-data-processing-examples)

## Fluxo de trabalho para associar inferências a registros de entrada
<a name="batch-transform-data-processing-workflow"></a>

O diagrama a seguir mostra o fluxo de trabalho para associar inferências a registros de entrada.

![\[Fluxo de trabalho para associar inferências com registros de entrada.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/batch-transform-data-processing.png)


Para associar inferências a dados de entrada, há três etapas principais:

1. Filtre os dados de entrada que não são necessários para inferência antes de passá-los para o trabalho de transformação em lote. Use o parâmetro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter                             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter                             ) para determinar quais atributos usar como entrada para o modelo.

1. Associe os dados de entrada aos resultados de inferência. Use o parâmetro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-JoinSource                         ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-JoinSource                         ) para combinar os dados de entrada com a inferência.

1. Filtre os dados associados para reter as entradas que são necessárias para fornecer contexto para interpretar as predições nos relatórios. Use [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-OutputFilter                             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-OutputFilter                             ) para armazenar a parte especificada do conjunto de dados associado no arquivo de saída.

## Uso do processamento de dados em trabalhos de transformação em lotes
<a name="batch-transform-data-processing-steps"></a>

Ao criar um trabalho de transformação em lote com [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) para processar dados:

1. Especifique a parte da entrada a ser transmitida para o modelo com o parâmetro `InputFilter` na estrutura de dados `DataProcessing`. 

1. Associe os dados de entrada brutos aos dados transformados com o parâmetro `JoinSource`.

1. Especifique a parte dos dados transformados e de entrada associados do trabalho de transformação em lotes a ser incluída no arquivo de saída com o parâmetro `OutputFilter`.

1.  Escolha arquivos em formato CSV ou JSON para entrada: 
   + Para arquivos de entrada formatados em JSON ou JSON Lines, o SageMaker AI adiciona o `SageMakerOutput` atributo ao arquivo de entrada ou cria um novo arquivo de saída JSON com os atributos e. `SageMakerInput` `SageMakerOutput` Para obter mais informações, consulte [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html). 
   + Para arquivos de entrada em formato CSV, os dados de entrada associados são seguidos pelos dados transformados, e a saída é um arquivo CSV.

Se você usar um algoritmo com a estrutura `DataProcessing`, ele deverá ser compatível com o formato escolhido para os *dois* arquivos de entrada e saída. Por exemplo, com o campo [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html) da API `CreateTransformJob`, defina os parâmetros [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html#SageMaker-Type-Channel-ContentType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html#SageMaker-Type-Channel-ContentType) e [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-Accept](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-Accept) como um dos seguintes valores: `text/csv`, `application/json` ou `application/jsonlines`. A sintaxe para especificação de colunas em um arquivo CSV e especificação de atributos em um arquivo JSON são diferentes. Usar a sintaxe errada causará um erro. Para obter mais informações, consulte [Exemplos de transformação em lote](#batch-transform-data-processing-examples). Para obter mais informações sobre formatos de arquivo de entrada e saída para algoritmos integrados, consulte [Algoritmos integrados e modelos pré-treinados na Amazon SageMaker](algos.md).

Os delimitadores de registro para a entrada e a saída também devem ser consistentes com o arquivo de entrada escolhido. O parâmetro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType) indica como dividir os registros no conjunto de dados de entrada. O parâmetro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith                     ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith                     ) indica como remontar os registros para a saída. Se definir formatos de entrada e saída como `text/csv`, você também deverá definir os parâmetros `AssembleWith` e `SplitType` como `line`. Se definir os formatos de entrada e saída como `application/jsonlines`, você poderá definir `SplitType` e `AssembleWith` como `line`.

Para arquivos CSV, você não pode usar caracteres de nova linha incorporados. Para arquivos JSON, o nome do atributo `SageMakerOutput` é reservado para saída. O arquivo de entrada JSON não pode ter um atributo com esse nome. Se tiver, os dados no arquivo de entrada podem ser substituídos. 

## JSONPath Operadores suportados
<a name="data-processing-operators"></a>

Para filtrar e unir os dados de entrada e a inferência, use uma JSONPath subexpressão. SageMaker A IA suporta somente um subconjunto dos JSONPath operadores definidos. A tabela a seguir lista os JSONPath operadores compatíveis. Para dados CSV, cada linha é considerada uma matriz JSON, portanto, somente a base de índice JSONPaths pode ser aplicada, por exemplo,. `$[0]` `$[1:]` Os dados CSV também devem seguir o [formato RFC](https://tools.ietf.org/html/rfc4180).


| JSONPath Operador | Description | Exemplo | 
| --- | --- | --- | 
| \$1 |  O elemento raiz para uma consulta. Esse operador é necessário no início de todas as expressões de caminho.  | \$1 | 
| .<name> |  Um elemento filho com notação de pontos.  |  `$.id`  | 
| \$1 |  Um caractere curinga. Use no lugar de um nome de atributo ou valor numérico.  |  `$.id.*`  | 
| ['<name>' (,'<name>')] |  Um elemento ou vários elementos filho com notação de colchetes.  |  `$['id','SageMakerOutput']`  | 
| [<number> (,<number>)] |  Um índice ou matriz de índices. Os valores de índice negativos também são compatíveis. Um índice `-1` corresponde ao último elemento em uma matriz.  |  `$[1]` , `$[1,3,5]`  | 
| [<start>:<end>] |  Um operador de matriz slice. O método matriz slice() extrai uma seção de uma matriz e retorna uma nova matriz. Se você omitir*<start>*, a SageMaker IA usa o primeiro elemento da matriz. Se você omitir*<end>*, a SageMaker IA usará o último elemento da matriz.  |  `$[2:5]`, `$[:5]`, `$[2:]`  | 

Ao usar a notação de colchete para especificar múltiplos elementos filho de um determinado campo, o aninhamento adicional de filhos dentro de colchetes não é compatível. Por exemplo, `$.field1.['child1','child2']` é compatível, mas `$.field1.['child1','child2.grandchild']` não é. 

Para obter mais informações sobre JSONPath operadores, consulte [JsonPath](https://github.com/json-path/JsonPath)em GitHub.

## Exemplos de transformação em lote
<a name="batch-transform-data-processing-examples"></a>

Os exemplos a seguir mostram algumas maneiras comuns de associar dados de entrada a resultados de predições.

**Topics**
+ [

### Exemplo: gerar somente inferências
](#batch-transform-data-processing-example-default)
+ [

### Exemplo: inferências de saída unidas a dados de entrada
](#batch-transform-data-processing-example-all)
+ [

### Exemplo: inferências de saída unidas aos dados de entrada e exclusão da coluna ID da entrada (CSV)
](#batch-transform-data-processing-example-select-csv)
+ [

### Exemplo: inferências de saída unidas a uma coluna de ID e exclusão da coluna de ID da entrada (CSV)
](#batch-transform-data-processing-example-select-json)

### Exemplo: gerar somente inferências
<a name="batch-transform-data-processing-example-default"></a>

Por padrão, o parâmetro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-DataProcessing](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-DataProcessing) não associa resultados de inferência à entrada. Ele gera apenas resultados de inferência.

Se você quiser especificar explicitamente a não união de resultados com entrada, use o SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) e especifique as seguintes configurações em uma chamada de transformador.

```
sm_transformer = sagemaker.transformer.Transformer(…)
sm_transformer.transform(…, input_filter="$", join_source= "None", output_filter="$")
```

Para gerar inferências usando o AWS SDK para Python, adicione o código a seguir à sua solicitação. CreateTransformJob O código a seguir imita o comportamento padrão.

```
{
    "DataProcessing": {
        "InputFilter": "$",
        "JoinSource": "None",
        "OutputFilter": "$"
    }
}
```

### Exemplo: inferências de saída unidas a dados de entrada
<a name="batch-transform-data-processing-example-all"></a>

Se você estiver usando o [SDK do Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) para combinar os dados de entrada com as inferências no arquivo de saída, especifique os `accept` parâmetros `assemble_with` e ao inicializar o objeto transformador. Ao usar a chamada de transformação, especifique `Input` para o parâmetro `join_source` e especifique também os parâmetros `split_type` e `content_type`. O parâmetro `split_type` deve ter o mesmo valor que `assemble_with`, e o parâmetro `content_type` deve ter o mesmo valor que `accept`. Para obter mais informações sobre os parâmetros e seus valores aceitos, consulte a página [Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) no *Amazon SageMaker AI Python SDK*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, join_source="Input", split_type="Line", content_type="text/csv")
```

Se você estiver usando o AWS SDK para Python (Boto 3), junte todos os dados de entrada à inferência adicionando o código a seguir à sua solicitação. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) Os valores para `Accept` e `ContentType` devem corresponder, e os valores para `AssembleWith` e `SplitType` também devem corresponder.

```
{
    "DataProcessing": {
        "JoinSource": "Input"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

Para os arquivos de entrada JSON ou Linhas JSON, os resultados estão na chave `SageMakerOutput` no arquivo JSON de entrada. Por exemplo, se a entrada é um arquivo JSON que contém o par de chave/valor `{"key":1}`, o resultado da transformação de dados pode ser `{"label":1}`.

SageMaker O AI armazena ambos no arquivo de entrada na `SageMakerInput` chave.

```
{
    "key":1,
    "SageMakerOutput":{"label":1}
}
```

**nota**  
O resultado associado para JSON deve ser um objeto de par de chave/valor. Se a entrada não for um objeto de par de valores-chave, o SageMaker AI cria um novo arquivo JSON. No novo arquivo JSON, os dados de entrada são armazenados na chave `SageMakerInput`, e os resultados são armazenados como o valor `SageMakerOutput`.

Por exemplo, para um arquivo CSV, se o registro for `[1,2,3]`, e o resultado de rótulo for `[1]`, o arquivo de saída conterá `[1,2,3,1]`.

### Exemplo: inferências de saída unidas aos dados de entrada e exclusão da coluna ID da entrada (CSV)
<a name="batch-transform-data-processing-example-select-csv"></a>

Se você estiver usando o [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) para unir seus dados de entrada com a saída de inferência enquanto exclui uma coluna de ID da entrada do transformador, especifique os mesmos parâmetros do exemplo anterior, bem como uma JSONPath subexpressão para a em sua chamada de transformador. `input_filter` Por exemplo, se seus dados de entrada incluírem cinco colunas e a primeira for a coluna ID, use a solicitação de transformação a seguir para selecionar todas as colunas, exceto a coluna ID, como atributos. O transformador ainda gera todas as colunas de entrada unidas às inferências. Para obter mais informações sobre os parâmetros e seus valores aceitos, consulte a página [Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) no *Amazon SageMaker AI Python SDK*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input")
```

Se você estiver usando o AWS SDK para Python (Boto 3), adicione o código a seguir à sua solicitação. `[ CreateTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)`

```
{
    "DataProcessing": {
        "InputFilter": "$[1:]",
        "JoinSource": "Input"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

Para especificar colunas no SageMaker AI, use o índice dos elementos da matriz. A primeira coluna é o índice 0, a segunda coluna é o índice 1 e a sexta coluna é o índice 5.

Para excluir a primeira coluna da entrada, defina `[InputFilter](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter )` como `"$[1:]"`. Os dois pontos (`:`) fazem com que a SageMaker IA inclua todos os elementos entre dois valores, inclusive. Por exemplo, `$[1:4]` especifica a segunda até a quinta colunas.

Se você omitir o número após o dois-pontos, por exemplo, `[5:]`, o subconjunto incluirá todas as colunas da sexta até a última. Se você omitir o número antes do dois-pontos, por exemplo `[:5]`, o subconjunto incluirá todas as colunas da primeira (índice 0) até a sexta.

### Exemplo: inferências de saída unidas a uma coluna de ID e exclusão da coluna de ID da entrada (CSV)
<a name="batch-transform-data-processing-example-select-json"></a>

Se você estiver usando o [SDK do Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable), poderá especificar a saída para unir somente colunas de entrada específicas (como a coluna ID) às inferências especificando a na chamada do `output_filter` transformador. O `output_filter` usa uma JSONPath subexpressão para especificar quais colunas devem ser retornadas como saída após unir os dados de entrada aos resultados da inferência. A solicitação a seguir mostra como você pode fazer predições ao excluir uma coluna de ID e, em seguida, unir a coluna de ID às inferências. Observe que, no exemplo a seguir, a última coluna (`-1`) da saída contém as inferências. Se você estiver usando arquivos JSON, o SageMaker AI armazena os resultados da inferência no atributo. `SageMakerOutput` Para obter mais informações sobre os parâmetros e seus valores aceitos, consulte a página [Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) no *Amazon SageMaker AI Python SDK*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input", output_filter="$[0,-1]")
```

Se você estiver usando o AWS SDK para Python (Boto 3), junte somente a coluna ID às inferências adicionando o código a seguir à sua solicitação. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)

```
{
    "DataProcessing": {
        "InputFilter": "$[1:]",
        "JoinSource": "Input",
        "OutputFilter": "$[0,-1]"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

**Atenção**  
Se você estiver usando um arquivo de entrada em formato JSON, o arquivo não poderá conter o nome do atributo `SageMakerOutput`. Esse nome do atributo é reservado para as inferências no arquivo de saída. Se o arquivo de entrada no formato JSON contiver um atributo com esse nome, os valores no arquivo de entrada poderão ser substituídos pela inferência.