Remoção de linhas comentadas
Seu chefe gostaria que você realizasse uma análise complexa em um novo conjunto de dados. Os dados representam dados de anotação para o conjunto de dados ImageNet, mas com foco específico em raças de cães e sua identificação em imagens. Antes que qualquer análise real possa ocorrer, você precisará limpar vários componentes de dados inválidos/incorretos. O esquema geral do documento é desconhecido, portanto, você gostaria de importar as linhas em uma única coluna, permitindo uma análise rápida.
Para começar, você precisa remover todas as linhas comentadas do conjunto de dados.
O contexto spark
e o arquivo base CSV (annotations.csv.gz
) estão disponíveis para você trabalhar. A função col
também está disponível para uso.
Este exercício faz parte do curso
Limpeza de dados com o PySpark
Instruções do exercício
- Importe o arquivo
annotations.csv.gz
para um DataFrame e faça uma contagem de linhas. Especifique um caractere separador de |. - Consulte os dados para saber o número de linhas que começam com #.
- Importe o arquivo novamente para um novo DataFrame, mas especifique o caractere de comentário nas opções para remover todas as linhas comentadas.
- Conte o novo DataFrame e verifique se a diferença é a esperada.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____
# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()
# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')
# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))