Transformação Keep

Mantém um conjunto de linhas no conjunto de dados. Elas são especificadas pelo condicional na expressão row. Todas as outras linhas são removidas do conjunto de dados. A transformação keep é o oposto de delete. Consulte Transformação Delete.

Uso básico

keep row:(customerStatus == 'active')

Resultado: para cada linha do conjunto de dados, se o valor da coluna customerStatus for active, a linha será mantida. Caso contrário, a linha será excluída do conjunto de dados.

Parâmetros

keep row:(expression)

ParâmetroObrigatório?Transform BuilderTipo de dadosDescrição
rowSCondiçãostringExpressão que identifica uma ou mais linhas para serem mantidas. Se a expressão for avaliada como true para uma linha, essa linha será mantida.

Para mais informações sobre os padrões de sintaxe, consulte as Observações sobre a sintaxe da documentação da linguagem.

row

Expressão para identificar uma ou mais linhas em que a transformação será executada. A expressão precisa ser avaliada como true ou false.

Exemplos:

ExpressãoDescrição

Score >= 50
true se o valor na coluna Score for maior que 50.

LEN(LastName) > 8
true se o comprimento do valor na coluna LastName for maior que oito.

ISMISSING([Title])
true se o valor da linha na coluna Title estiver ausente.

ISMISMATCHED(Score,['Integer'])
true se o valor da linha na coluna Score for incompatível com o tipo de dados de número inteiro.

Para a transformação keep, se a expressão do parâmetro row for avaliada como true para uma linha, ela será mantida no conjunto de dados. Caso contrário, ela será removida.

Exemplo:

keep row: (lastOrder >= 10000 && status == 'Active')

Resultado: mantém todas as linhas no conjunto de dados em que o valor lastOrder é maior ou igual a 10.000 e o status do cliente é Active.

Observações sobre o uso:

Obrigatório?Tipo de dados
SimExpressão avaliada como true ou false

Exemplos

Exemplo: remover produtos antigos e manter novos pedidos

Neste exemplo, ilustramos como você pode manter e excluir linhas do conjunto de dados usando as seguintes transformações:

  • delete: exclui um conjunto de linhas conforme avaliado pela expressão condicional no parâmetro row. Consulte Transformação Delete.
  • keep: mantém um conjunto de linhas conforme avaliado pela expressão condicional no parâmetro row. Todas as outras linhas são excluídas do conjunto de dados. Consulte Transformação Keep.

Origem:

O conjunto de dados inclui as informações de pedido a seguir. Você quer editar o conjunto de dados para que:

  • todos os pedidos de produtos que não estão mais disponíveis sejam removidos. Eles incluem os seguintes IDs de produtos: P100, P101, P102, P103;
  • todos os pedidos que foram feitos nos últimos 90 dias sejam mantidos.
OrderIdOrderDateProdIdProductNameProductColorQtyOrderValue
100114/06/2015P100ChapéuMarrom190
100215/01/2016P101ChapéuPreto2180
100311/11/2015P103SuéterPreto3255
100406/08/2015P105CardigãVermelho4320
100529/07/2015P103SoéterPreto5375
100601/12/2015P102CalçaBranco6420
100728/12/2015P107CamisetaBranco7390
100815/01/2016P105CardigãVermelho8420
100931/01/2016P108CasacoAzul-marinho9495

Transformação:

Primeiro, remova os pedidos de produtos antigos. Como o conjunto de produtos é relativamente pequeno, você pode começar adicionando primeiro o seguinte comando:

OBSERVAÇÃO: apenas visualize esta transformação, não a adicione à receita por enquanto.

delete row:(ProdId == 'P100')

Quando esta etapa é visualizada, você nota que a linha superior da tabela acima está destacada para remoção. Observe como a transformação depende do valor ProdId. Se olhar para o valor ProductName, você poderá notar que há um erro de ortografia em uma das linhas afetadas. Desse modo, essa coluna não é válida para fins comparativos.

Você pode adicionar os outros códigos de produtos à transformação na seguinte expansão da transformação, em que qualquer linha que tenha um valor ProdId correspondente é removida:

delete row:(ProdId == 'P100' || ProdId == 'P101' || ProdId == 'P102' || ProdId == 'P103')

Quando a etapa anterior for adicionada à receita, os dados exibidos serão assim:

OrderIdOrderDateProdIdProductNameProductColorQtyOrderValue
100406/08/2015P105CardigãVermelho4320
100728/12/2015P107CamisetaBranco7390
100815/01/2016P105CardigãVermelho8420
100931/01/2016P108CasacoAzul-marinho9495

Agora, você pode remover os pedidos do conjunto de dados com mais de 90 dias. Primeiro, adicione uma coluna com a data de hoje:

derive value:'2/25/16' as:'today'

Mantenha as linhas que estão dentro de 90 dias dessa data usando o seguinte comando:

keep row:DATEDIF(OrderDate,today,day) <= 90

Não se esqueça de descartar a coluna today, que já não é necessária:

drop col:today

Resultados:

OrderIdOrderDateProdIdProductNameProductColorQtyOrderValue
100728/12/2015P107CamisetaBranco7390
100815/01/2016P105CardigãVermelho8420
100931/01/2016P108CasacoAzul-marinho9495

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.