Eliminar líneas comentadas
Tu jefe quiere que realices un análisis sintáctico complejo de un nuevo conjunto de datos. Los datos representan datos de anotación del conjunto de datos ImageNet, pero centrándose específicamente en las razas de perros y su identificación en imágenes. Antes de realizar cualquier análisis real, tendrás que eliminar varios componentes de datos no válidos / incorrectos. El esquema general del documento es desconocido, por lo que te gustaría importar las filas en una sola columna, lo que permitiría un análisis rápido.
Para empezar, tienes que eliminar todas las filas comentadas del conjunto de datos.
El contexto spark
, y el archivo base CSV (annotations.csv.gz
) están disponibles para que trabajes con ellos. También puedes utilizar la función col
.
Este ejercicio forma parte del curso
Limpiar datos con PySpark
Instrucciones del ejercicio
- Importa el archivo
annotations.csv.gz
a un DataFrame y realiza un recuento de filas. Especifica un carácter separador de |. - Busca en los datos el número de filas que empiezan por #.
- Importa de nuevo el archivo a un nuevo Marco de Datos, pero especifica el carácter de comentario en las opciones para eliminar las filas comentadas.
- Cuenta el nuevo Marco de datos y comprueba que la diferencia es la esperada.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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" % (____, ____, ____))