EXEMPLO: como dividir com tipos de delimitador diferentes

Neste exemplo mostramos como você pode dividir dados de uma única coluna em várias usando os seguintes tipos de delimitadores:

  • Delimitador de padrão único: um padrão é aplicado uma ou mais vezes na coluna de origem para definir os delimitadores para as colunas de saída.
  • Delimitador de vários padrões: vários padrões, sob a forma de strings explícitas, posições de índice de caracteres ou campos de largura fixa, são usados para dividir a coluna.

Para mais informações sobre esses métodos, consulte Transformação Split.

Origem:

Neste exemplo, seu conjunto de dados CSV contém mensagens de status de um conjunto de servidores. Nesse caso, os dados sobre o servidor e o carimbo de data/hora estão contidos em um único valor no CSV.

Server|Date Time,Status
admin.examplecom|2016-03-05 07:04:00,down
webapp.examplecom|2016-03-05 07:04:00,ok
admin.examplecom|2016-03-05 07:04:30,rebooting
webapp.examplecom|2016-03-05 07:04:00,ok
admin.examplecom|2016-03-05 07:05:00,ok
webapp.examplecom|2016-03-05 07:05:00,ok

Transformação:

Quando os dados são carregados pela primeira vez na página "Transformer", os dados CSV são divididos por meio do uso das duas transformações a seguir:

splitrows col: column1 on: '\r'

split col: column1 on: ',' quote: '\"'

Você pode precisar adicionar um header como a primeira etapa:

header

Neste ponto, os dados devem ter esta aparência:

Server_Date_TimeStatus
admin.example.com | 2016-03-05 07:04:00desligado
webapp.example.com | 2016-03-05 07:04:00ok
admin.example.com | 2016-03-05 07:04:30reiniciando
webapp.example.com | 2016-03-05 07:04:30ok
admin.example.com | 2016-03-05 07:05:00ok
webapp.example.com | 2016-03-05 07:05:00ok

A primeira coluna contém três conjuntos diferentes de dados: o nome do servidor, a data e a hora. Observe que os delimitadores entre esses campos são diferentes. Portanto, use um delimitador de vários padrões para separá-los:

split col:Server_Date_Time delimiters:'|',' '

Quando o delimitador acima for adicionado, você verá três colunas separadas com os campos de informação individuais. Observe que a coluna de origem foi descartada automaticamente.

OBSERVAÇÃO: um nome de coluna não pode conter o valor |. Portanto, o nome da coluna de origem não pode ser usado como base para os nomes das colunas aplicados às colunas geradas. Nesse caso, você precisa usar a transformação rename para atualizar as colunas geradas de acordo com essa informação.

Agora, você quer dividir a coluna de carimbo de data/hora em colunas separadas por ano, mês e dia. Como o delimitador de coluna desse campo é consistentemente um traço (-), você pode usar um delimitador de padrão único com a transformação split:

split col:date on:`-` limit:2

Resultados:

Depois de renomear as colunas geradas, seu conjunto de dados ficará como mostrado abaixo. Observe que a coluna de carimbo de data/hora de origem foi automaticamente descartada.

serveryearmonthdaytimeStatus
admin.example.com2016030507:04:00desligado
webapp.example.com2016030507:04:00ok
admin.example.com2016030507:04:30reiniciando
webapp.example.com2016030507:04:30ok
admin.example.com2016030507:05:00ok
webapp.example.com2016030507:05:00ok
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.