Delen via


De brongegevens voor een gegevenspijplijn verkennen

Een veelvoorkomende eerste stap bij het maken van een gegevenspijplijn is het begrijpen van de brongegevens voor de pijplijn. In deze stap voert u Databricks Utilities en PySpark-opdrachten uit in een notebook om de brongegevens en artefacten te onderzoeken.

Zie Verkennende gegevensanalyse in Azure Databricks: Hulpprogramma's en technieken voor meer informatie over experimentele gegevensanalyse.

Video: Inleiding tot Databricks-notebooks

Bekijk deze video voor een inleiding tot Databricks-notebooks:

Een notebook voor gegevensverkenning maken

  1. Klik in de zijbalk op Nieuw pictogram Nieuw en selecteer Notitieblok in het menu. Het notitieblok wordt geopend met een standaardnaam die u kunt vervangen.

  2. Voer bijvoorbeeld een naam in voor het notitieblok Explore songs data. Standaard:

    • Python is de geselecteerde taal.
    • Het notebook is gekoppeld aan het laatste cluster dat u hebt gebruikt. In dit geval is het cluster dat u in stap 1 hebt gemaakt: een cluster maken.
  3. Als u de inhoud van de map met de gegevensset wilt weergeven, voert u het volgende in de eerste cel van het notitieblok in, klikt u Menu Uitvoerenen selecteert u Cel uitvoeren.

    %fs ls "/databricks-datasets/songs"
    
    path naam size 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

De gegevens verkennen

  1. Het README-bestand bevat informatie over de gegevensset, inclusief een beschrijving van het gegevensschema. De schemagegevens worden in de volgende stap gebruikt bij het opnemen van de gegevens. Als u de inhoud van het LEESMIJ-bestand wilt weergeven, klikt u Omlaag caretin het menu celacties, selecteert u Cel onder toevoegen, voert u het volgende in de nieuwe cel in, klikt u opMenu Uitvoeren en selecteert u Cel uitvoeren.

    %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. De records die in dit voorbeeld worden gebruikt, bevinden zich in de /databricks-datasets/songs/data-001/ map. Als u de inhoud van deze map wilt weergeven, klikt u Omlaag caret in het menu celacties, selecteert u Cel onder toevoegen, voert u het volgende in de nieuwe cel in, klikt u op Menu Uitvoerenen selecteert u Cel uitvoeren.

    %fs ls "/databricks-datasets/songs/data-001"
    
    path naam size 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. Omdat de LEESMIJ- en bestandsnamen niet de bestandsindeling aangeven, kunt u een voorbeeld van de records bekijken om de inhoud en indeling van elke record beter te begrijpen. Als u de eerste tien records uit een van de gegevensbestanden wilt lezen en weergeven, klikt u Omlaag caret in het menu celacties, selecteert u Cel onder toevoegen, voert u het volgende in de nieuwe cel in, klikt u en Menu Uitvoerenselecteert u Cel uitvoeren.

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

    U kunt enkele dingen over de gegevens bekijken door een voorbeeld van de records te bekijken. U gebruikt deze opmerkingen later bij het verwerken van de gegevens:

    • De records bevatten geen koptekst. In plaats daarvan wordt de header opgeslagen in een afzonderlijk bestand in dezelfde map.
      • De bestanden lijken de TSV-indeling (Tab-Separated Value) te hebben.
      • Sommige velden ontbreken of zijn ongeldig.
  4. Als u de gegevens verder wilt verkennen en analyseren, gebruikt u deze waarnemingen om de geformatteerde TSV-nummergegevens te laden in een PySpark DataFrame. Hiervoor klikt u Omlaag caretin het menu celacties, selecteert u Cel onder toevoegen, voert u de volgende code in de nieuwe cel in en klikt u vervolgens opMenu Uitvoeren> Cel uitvoeren.

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

    Omdat in het gegevensbestand een kop ontbreekt, worden de kolomnamen weergegeven als _c0, _c1enzovoort. Elke kolom wordt geïnterpreteerd als een string ongeacht het werkelijke gegevenstype. De opname van de onbewerkte gegevens in de volgende stap toont een voorbeeld van hoe u een geldig schema kunt opleggen wanneer u de gegevens laadt.

    DataFrame gemaakt op basis van onbewerkte nummersgegevens