EXEMPLO: transformação Extractlist

Origem:

O conjunto de dados a seguir inclui contagens de e-mails de suporte processados por cada membro da equipe de suporte para clientes individuais ao longo de um período de seis meses. Neste caso, você está interessado no número total de e-mails processados para cada cliente.

Infelizmente, os dados são irregulares, já que não há entradas de um membro da equipe de suporte se ele não respondeu a um e-mail de um cliente. Desse modo, a transformação unnest não é utilizável.

custIdstartDateendDatesupportEmailCount
C00115/07/201531/12/2015["Max":"2","Ted":"0","Sally":"12","Jack":"6","Sue":"4"]
C00215/07/201531/12/2015["Sally":"4","Sue":"3"]
C00315/07/201531/12/2015["Ted":"12","Sally":"2"]
C00415/07/201531/12/2015["Jack":"7","Sue":"4","Ted":"5"]

Se os dados forem importados de um arquivo CSV, talvez seja necessário fazer algumas transformações replace simples de limpeza deles para que se pareçam com o exemplo acima.

Transformação:

Use a transformação abaixo para extrair apenas os valores numéricos da matriz supportEmailCount:

extractlist col:supportEmailCount on:`{digit}+`

Agora você tem uma coluna extractlist_supportEmailCount que contém uma matriz irregular. Use as transformações abaixo para converter esses dados em uma lista de valores separados por vírgula:

replace col: extractlist_supportEmailCount on: `[` with: '' global: true

replace col: extractlist_supportEmailCount on: `]` with: '' global: true

replace col: extractlist_supportEmailCount on: `"` with: '' global: true

Converta a coluna em tipo de dados de String.

Agora, divida a coluna em colunas separadas contendo os valores individuais da origem modificada. O parâmetro limit especifica o número de divisões a serem criadas, resultando em cinco novas colunas, que é o número máximo de entradas nas matrizes de origem.

split col:extractlist_supportEmailCount on:',' limit:4

É preciso configurar o tipo de cada coluna gerada como Número inteiro. Se você usar uma transformação derive para calcular a soma de todas as colunas geradas, ela retornará somente os valores da primeira linha. Isso ocorre porque as linhas ausentes são valores nulos.

Nas colunas que contêm valores nulos, selecione a barra de valores ausentes no histograma de dados. Selecione o cartão de sugestão "Replace" e modifique a transformação para escrever 0 no lugar do valor nulo, da seguinte forma:

set col: extractlist_supportEmailCount3 value: '0' row: ISMISSING([extractlist_supportEmailCount3])

Repita essa etapa para qualquer outra coluna que contenha valores nulos.

Agora é possível usar a instrução abaixo para somar os valores nas colunas geradas:

derive type:single value:(extractlist_supportEmailCount1 + extractlist_supportEmailCount2 + extractlist_supportEmailCount3 + extractlist_supportEmailCount4 + extractlist_supportEmailCount5)

Resultados:

Depois de renomear a coluna gerada para totalSupportEmails e descartar as colunas usadas para criá-la, o conjunto de dados será semelhante a este:

custIdstartDateendDatesupportEmailCounttotalSupportEmails
C00115/07/201531/12/2015["Max":"2","Ted":"0","Sally":"12","Jack":"6","Sue":"4"]24
C00215/07/201531/12/2015["Sally":"4","Sue":"3"]7
C00315/07/201531/12/2015["Ted":"12","Sally":"2"]14
C00415/07/201531/12/2015["Jack":"7","Sue":"4","Ted":"5"]16
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.