Esplorare i dati di origine per una pipeline di dati

Un primo passaggio comune per la creazione di una pipeline di dati consiste nel comprendere i dati di origine per la pipeline. In questo passaggio verranno eseguiti i comandi Databricks Utilities e PySpark in un notebook per esaminare i dati e gli artefatti di origine.

Per altre informazioni sull'analisi esplorativa dei dati, vedere Analisi esplorativa dei dati in Azure Databricks: Strumenti e tecniche.

Video: Introduzione ai notebook di Databricks

Per un'introduzione ai notebook di Databricks, guardare questo video:

Creare un notebook di esplorazione dei dati

  1. Nella barra laterale fare clic su Nuova iconaNuovo e selezionare Notebook dal menu. Il notebook viene aperto con un nome predefinito che è possibile sostituire.

  2. Immettere un nome per il notebook, Explore songs dataad esempio . Per impostazione predefinita:

    • Python è il linguaggio selezionato.
    • Il notebook è collegato all'ultimo cluster usato. In questo caso, il cluster creato nel passaggio 1: Creare un cluster.
  3. Per visualizzare il contenuto della directory contenente il set di dati, immettere quanto segue nella prima cella del notebook, fare clic su Menu Eseguie selezionare Esegui cella.

    %fs ls "/databricks-datasets/songs/data-001"
    
    path name size modificationTime
    1 dbfs:/databricks-datasets/songs/README.md README.md 1719 1454620183000
    2 dbfs:/databricks-datasets/songs/data-001/ data-001/ 0 1672791237846
    3 dbfs:/databricks-datasets/songs/data-002/ data-002/ 0 1672791237846

Esplorare i dati

  1. Il file README contiene informazioni sul set di dati, inclusa una descrizione dello schema dei dati. Le informazioni sullo schema vengono usate nel passaggio successivo durante l'inserimento dei dati. Per visualizzare il contenuto del file README, fare clic Cursore giùnel menu Azioni cella, selezionare Aggiungi cella sottostante, immettere quanto segue nella nuova cella, fare clic suMenu Esegui e selezionare Esegui cella.

    %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. I record usati in questo esempio si trovano nella /databricks-datasets/songs/data-001/ directory . Per visualizzare il contenuto di questa directory, fare clic Cursore giùsul menu Azioni cella, selezionare Aggiungi cella sottostante, immettere quanto segue nella nuova cella, fare clic suMenu Esegui e selezionare Esegui cella.

    %fs ls "/databricks-datasets/songs/data-001"
    
    path name size modificationTime
    1 dbfs:/databricks-datasets/songs/data-001/header.txt header.txt 377 1454633901000
    2 dbfs:/databricks-datasets/songs/data-001/part-00000 part-00000 52837 1454547464000
    3 dbfs:/databricks-datasets/songs/data-001/part-00001 part-00001 52469 1454547465000
  3. Poiché i nomi di file e README non indicano il formato di file, è possibile visualizzare un esempio dei record per comprendere meglio il contenuto e il formato di ogni record. Per leggere e visualizzare i primi dieci record da uno dei file di dati, fare clic nel menu Azioni cella, selezionare Aggiungi cella sottostante, immettere quanto segue nella nuova cella, fare clicCursore giùsuMenu Esegui e selezionare Esegui cella.

    %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
     ...
    

    È possibile osservare alcuni aspetti relativi ai dati dalla visualizzazione di un campione dei record. Queste osservazioni verranno usate in un secondo momento durante l'elaborazione dei dati:

    • I record non contengono un'intestazione. L'intestazione viene invece archiviata in un file separato nella stessa directory.
      • I file sembrano essere in formato TSV (Tab-Separated Value).
      • Alcuni campi sono mancanti o non validi.
  4. Per esplorare e analizzare ulteriormente i dati, usare queste osservazioni per caricare i dati dei brani in formato TSV in un dataframe PySpark. A tale scopo, fare clic Cursore giùsul menu Azioni cella, selezionare Aggiungi cella sottostante, immettere il codice seguente nella nuova cella e quindi fare clic su>Menu Esegui Esegui cella.

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

    Poiché il file di dati manca un'intestazione, i nomi delle colonne vengono visualizzati come _c0, _c1e così via. Ogni colonna viene interpretata come un string oggetto indipendentemente dal tipo di dati effettivo. L'inserimento dei dati non elaborati nel passaggio successivo illustra un esempio di come imporre uno schema valido quando si caricano i dati.

    DataFrame creato da dati di brani non elaborati