Freigeben über


Untersuchen der Quelldaten für eine Datenpipeline

Ein gängiger erster Schritt beim Erstellen einer Datenpipeline besteht darin, Informationen zu den Quelldaten für die Pipeline zu erhalten. In diesem Schritt führen Sie Befehle der Databricks-Hilfsprogramme und PySpark-Befehle in einem Notebook aus, um die Quelldaten und Artefakte zu untersuchen.

Weitere Informationen zur explorativen Datenanalyse finden Sie unter Explorative Datenanalyse in Azure Databricks: Tools und Techniken.

Video: Einführung in Databricks-Notebooks

Eine Einführung in Databricks-Notebooks finden Sie in diesem Video:

Erstellen eines Notebooks für die Datenuntersuchung

  1. Klicken Sie auf der Seitenleiste auf Symbol „Neu“ Neu, und wählen Sie im Menü die Option Notebook aus. Das Notebook wird mit einem Standardnamen geöffnet, den Sie ersetzen können.

  2. Geben Sie einen Namen für das Notebook ein, etwa Explore songs data. Standardmäßig gilt:

    • Python ist die ausgewählte Sprache.
    • Das Notebook wird an den zuletzt verwendeten Cluster angefügt. In diesem Fall ist das der Cluster, den Sie in Schritt 1: Erstellen eines Clusters erstellt haben.
  3. Um den Inhalt des Verzeichnisses mit dem Dataset anzuzeigen, geben Sie Folgendes in die erste Zelle des Notebooks ein, klicken Sie auf Menü „Ausführen“, und wählen Sie Zelle ausführen aus.

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

Untersuchen der Daten

  1. Die Infodatei enthält Informationen zum Dataset, u. a. eine Beschreibung des Datenschemas. Die Schemainformationen werden im nächsten Schritt beim Erfassen der Daten verwendet. Klicken Sie zum Anzeigen des Inhalts der Infodatei im Menü „Zellenaktionen“ auf Caretzeichen nach unten, und wählen Sie Zelle unterhalb einfügen aus. Geben Sie Folgendes in die neue Zelle ein, klicken Sie auf Menü „Ausführen“, und wählen Sie Zelle ausführen aus.

    %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. Die in diesem Beispiel verwendeten Datensätze befinden sich im Verzeichnis /databricks-datasets/songs/data-001/. Klicken Sie zum Anzeigen des Inhalts dieses Verzeichnisses im Menü „Zellenaktionen“ auf Caretzeichen nach unten, und wählen Sie Zelle unterhalb einfügen aus. Geben Sie Folgendes in die neue Zelle ein, klicken Sie auf Menü „Ausführen“, und wählen Sie Zelle ausführen aus.

    %fs ls "/databricks-datasets/songs/data-001"
    
    path name 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. Da die Infodatei und die Dateinamen das Dateiformat nicht angeben, können Sie ein Beispiel der Datensätze anzeigen, um den Inhalt und das Format der einzelnen Datensätze besser zu verstehen. Klicken Sie zum Lesen und Anzeigen der ersten zehn Datensätze aus einer der Datendateien im Menü „Zellenaktionen“ auf Caretzeichen nach unten, und wählen Sie Zelle unterhalb einfügen aus. Geben Sie Folgendes in die neue Zelle ein, klicken Sie auf Menü „Ausführen“, und wählen Sie Zelle ausführen aus.

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

    Anhand einer Stichprobe der Datensätze erhalten Sie einige Informationen zu den Daten. Sie verwenden diese Informationen später bei der Datenverarbeitung:

    • Die Datensätze enthalten keinen Header. Stattdessen wird der Header in einer separaten Datei im selben Verzeichnis gespeichert.
      • Die Dateien scheinen im TSV-Format (Tab-Separated Values, durch Tabstopps getrennte Werte) vorzuliegen.
      • Einige Felder fehlen oder sind ungültig.
  4. Um die Daten genauer zu untersuchen und zu analysieren, können Sie diese Beobachtungen verwenden, um die Songdaten im TSV-Format in einen PySpark-DataFrame zu laden. Klicken Sie dazu im Menü „Zellenaktionen“ auf Caretzeichen nach unten, und wählen Sie Zelle unterhalb einfügen aus. Geben Sie den folgenden Code in die neue Zelle ein, und klicken Sie auf Menü „Ausführen“>Zelle ausführen.

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

    Da der Datendatei ein Header fehlt, werden die Spaltennamen als _c0, _c1 usw. angezeigt. Jede Spalte wird unabhängig vom tatsächlichen Datentyp als string interpretiert. Die Erfassung der Rohdaten im nächsten Schritt zeigt ein Beispiel dafür, wie Sie beim Laden der Daten ein gültiges Schema festlegen können.

    Aus unformatierten Songdaten erstellter DataFrame