Compartir a través de


Exploración de los datos de origen de una canalización de datos

Un primer paso común para crear una canalización de datos es comprender los datos de origen de la canalización. En este paso, ejecutará los comandos de utilidades de Databricks y PySpark en un cuaderno para examinar los datos de origen y los artefactos.

Para más información sobre el análisis exploratorio de datos, consulte Análisis de datos exploratorios en Azure Databricks: Herramientas y técnicas.

Video: Introducción a los cuadernos de Databricks

Para obtener una introducción a los cuadernos de Databricks, vea este vídeo:

Creación de un cuaderno de exploración de datos

  1. En la barra lateral, haga clic en Icono Nuevo Nuevo y seleccione Notebook en el menú. El cuaderno se abre con un nombre predeterminado que puede reemplazar.

  2. Escriba un nombre para el cuaderno, por ejemplo Explore songs data. De forma predeterminada:

    • Python es el lenguaje seleccionado.
    • El cuaderno está asociado al último clúster que usó. En este caso, el clúster que creó en el Paso 1: Crear un clúster.
  3. Para ver el contenido del directorio que contiene el conjunto de datos, escriba lo siguiente en la primera celda del cuaderno, haga clic en Menú Ejecutar y seleccione Ejecutar celda.

    %fs ls "/databricks-datasets/songs"
    
    path name tamaño modificationTime
    dbfs:/databricks-datasets/songs/README.md README.md 1719 1454620183000
    dbfs:/databricks-datasets/songs/data-001/ data-001/ 0 1672791237846
    dbfs:/databricks-datasets/songs/data-002/ data-002/ 0 1672791237846

Exploración de los datos

  1. El archivo LÉAME tiene información sobre el conjunto de datos, incluida una descripción del esquema de datos. La información del esquema se usa en el paso siguiente al ingerir los datos. Para ver el contenido del archivo README, haga clic en Símbolo de intercalación hacia abajo en el menú de acciones de celda, seleccione Agregar celda a continuación, escriba lo siguiente en la nueva celda, haga clic en Menú Ejecutar y seleccione Ejecutar celda.

    %fs head --maxBytes=10000 "/databricks-datasets/songs/README.md"
    
    Sample of Million Song Dataset
    ===============================
    
    ## Source
    This data is a small subset of the [Million Song Dataset](http://labrosa.ee.columbia.edu/millionsong/).
    The original data was contributed by The Echo Nest.
    Prepared by T. Bertin-Mahieux <tb2332 '@' columbia.edu>
    
    ## Attribute Information
    - artist_id:string
    - artist_latitude:double
    - artist_longitude:double
    - artist_location:string
    - artist_name:string
    - duration:double
    - end_of_fade_in:double
    - key:int
    - key_confidence:double
    - loudness:double
    - release:string
    - song_hotnes:double
    - song_id:string
    - start_of_fade_out:double
    - tempo:double
    - time_signature:double
    - time_signature_confidence:double
    - title:string
    - year:double
    - partial_sequence:int
    ...
    
  2. Los registros usados en este ejemplo están en el directorio /databricks-datasets/songs/data-001/. Para ver el contenido de este directorio, haga clic en Símbolo de intercalación hacia abajo en el menú de acciones de celda, seleccione Agregar celda a continuación, escriba lo siguiente en la nueva celda, haga clic en Menú Ejecutar y seleccione Ejecutar celda.

    %fs ls "/databricks-datasets/songs/data-001"
    
    path name tamaño modificationTime
    dbfs:/databricks-datasets/songs/data-001/header.txt header.txt 377 1454633901000
    dbfs:/databricks-datasets/songs/data-001/part-00000 part-00000 52837 1454547464000
    dbfs:/databricks-datasets/songs/data-001/part-00001 part-00001 52469 1454547465000
  3. Dado que los nombres de archivo y LÉAME no indican el formato de archivo, puede ver una muestra de los registros para comprender mejor el contenido y el formato de cada registro. Para leer y mostrar los diez primeros registros de uno de los archivos de datos, haga clic en Símbolo de intercalación hacia abajo en el menú de acciones de celda, seleccione Agregar celda a continuación, escriba lo siguiente en la nueva celda, haga clic en Menú Ejecutar y seleccione Ejecutar celda.

    %fs head --maxBytes=10000 "/databricks-datasets/songs/data-001/part-00000"
    
     AR81V6H1187FB48872  nan     nan             Earl Sixteen    213.7073        0.0     11      0.419   -12.106 Soldier of Jah Army     nan     SOVNZSZ12AB018A9B8      208.289 125.882 1       0.0     Rastaman        2003    --
     ARVVZQP11E2835DBCB  nan     nan             Wavves  133.25016       0.0     0       0.282   0.596   Wavvves 0.471578247701  SOJTQHQ12A8C143C5F      128.116 89.519  1       0.0     I Want To See You (And Go To The Movies)        2009    --
     ARFG9M11187FB3BBCB  nan     nan     Nashua USA      C-Side  247.32689       0.0     9       0.612   -4.896  Santa Festival Compilation 2008 vol.1   nan     SOAJSQL12AB0180501      242.196 171.278 5       1.0     Loose on the Dancefloor 0       225261
     ...
    

    Puede observar algunas cosas sobre los datos desde la visualización de una muestra de los registros. Usará estas observaciones más adelante al procesar los datos:

    • Los registros no contienen un encabezado. En su lugar, el encabezado se almacena en un archivo independiente en el mismo directorio.
      • Los archivos parecen estar en formato de valores separados por tabulaciones (TSV).
      • Faltan algunos campos o no son válidos.
  4. Para explorar y analizar aún más los datos, use estas observaciones para cargar los datos de canción con formato de TSV en un DataFrame de PySpark. Para ello, haga clic en Símbolo de intercalación hacia abajo en el menú de acciones de celda, seleccione Agregar celda a continuación, escriba el código siguiente en la nueva celda, y, a continuación, haga clic en Menú Ejecutar>Ejecutar celda.

    df = spark.read.format('csv').option("sep", "\t").load('dbfs:/databricks-datasets/songs/data-001/part-00000')
    df.display()
    

    Dado que falta un encabezado en el archivo de datos, los nombres de columna se muestran como _c0, _c1, etc. Cada columna se interpreta como string independientemente del tipo de datos real. La ingesta de los datos sin procesar en el paso siguiente muestra un ejemplo de cómo puede imponer un esquema válido al cargar los datos.

    DataFrame creado a partir de datos de canciones sin procesar