Erste Schritte: Erfassen und Einfügen zusätzlicher Daten

In diesem Artikel mit ersten Schritten erfahren Sie, wie Sie ein Azure Databricks-Notebook verwenden, um eine CSV-Datei mit zusätzlichen Daten zu Babynamen auf Ihrem Unity Catalog-Volume erfassen und dann die neuen Daten zu Babynamen mithilfe von Python, Scala und R in eine vorhandene Tabelle importieren.

Wichtig

Dieser Artikel mit ersten Schritten baut auf Erste Schritte: Importieren und Visualisieren von CSV-Daten aus einem Notebook auf. Sie müssen die Schritte in diesem Artikel abgeschlossen haben, um diesen Artikel ausführen zu können. Das vollständige Notebook für diesen Artikel mit ersten Schritten finden Sie unter Importieren und Visualisieren von Datennotebooks.

Anforderungen

Um die Aufgaben in diesem Artikel abzuschließen, müssen die folgenden Anforderungen erfüllt sein:

  • Ihr Arbeitsbereich muss für Unity Catalog aktiviert sein. Weitere Informationen zu den ersten Schritten mit Unity Catalog finden Sie unter Einrichten und Verwalten von Unity Catalog.
  • Sie müssen das WRITE VOLUME-Recht für ein Volume, das USE SCHEMA-Recht für das übergeordnete Schema und das USE CATALOG-Recht für den übergeordneten Katalog haben.
  • Sie müssen über die Berechtigung verfügen, eine vorhandene Computeressource zu verwenden oder eine neue Computeressource zu erstellen. Weitere Informationen erhalten Sie unter Erste Schritte: Einrichten von Konto und Arbeitsbereich oder von Ihren Databricks-Administratoren/-Administratorinnen.

Tipp

Ein vollständiges Notebook für diesen Artikel finden Sie unter Erfassen zusätzlicher Datennotebooks.

Schritt 1: Erstellen eines neuen Notebooks

Wenn Sie ein Notebook in Ihrem Arbeitsbereich erstellen möchten, wählen Sie in der Randleiste Neues SymbolNeu aus, und wählen Sie dann Notebook aus. Im Arbeitsbereich wird ein leeres Notebook geöffnet.

Weitere Informationen zum Erstellen und Verwalten von Notebooks finden Sie unter Verwalten von Notebooks.

Schritt 2: Definieren von Variablen

In diesem Schritt definieren Sie Variablen für die Verwendung im Beispiel-Notebook, das Sie in diesem Artikel erstellen.

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in die neue leere Notebookzelle ein. Ersetzen Sie <catalog-name>, <schema-name> und <volume-name> durch die Katalog-, Schema- und Volumenamen für ein Unity Catalog-Volume. Ersetzen Sie optional den table_name-Wert durch einen Tabellennamen Ihrer Wahl. Im weiteren Verlauf dieses Artikels speichern Sie die Babynamendaten in dieser Tabelle.

  2. Drücken Sie Shift+Enter, um die Zelle auszuführen und eine neue leere Zelle zu erstellen.

    Python

    catalog = "<catalog_name>"
    schema = "<schema_name>"
    volume = "<volume_name>"
    file_name = "new_baby_names.csv"
    table_name = "baby_names"
    path_volume = "/Volumes/" + catalog + "/" + schema + "/" + volume
    path_table = catalog + "." + schema
    print(path_table) # Show the complete path
    print(path_volume) # Show the complete path
    

    Scala

    val catalog = "<catalog_name>"
    val schema = "<schema_name>"
    val volume = "<volume_name>"
    val fileName = "new_baby_names.csv"
    val tableName = "baby_names"
    val pathVolume = s"/Volumes/${catalog}/${schema}/${volume}"
    val pathTable = s"${catalog}.${schema}"
    print(pathVolume) // Show the complete path
    print(pathTable) // Show the complete path
    

    R

    catalog <- "<catalog_name>"
    schema <- "<schema_name>"
    volume <- "<volume_name>"
    file_name <- "new_baby_names.csv"
    table_name <- "baby_names"
    path_volume <- paste0("/Volumes/", catalog, "/", schema, "/", volume, sep = "")
    path_table <- paste0(catalog, ".", schema, sep = "")
    print(path_volume) # Show the complete path
    print(path_table) # Show the complete path
    

Schritt 3: Hinzufügen einer neuen CSV-Datei mit Daten auf dem Unity Catalog-Volume

In diesem Schritt wird der DataFrame df mit einem neuen Babynamen für das Jahr 2022 erstellt. Anschließend werden diese Daten dann in einer neuen CSV-Datei auf Ihrem Unity Catalog-Volume gespeichert.

Hinweis

In diesem Schritt wird das Hinzufügen neuer jahresspezifischer Daten zu den vorhandenen und bereits geladenen Daten aus Vorjahren simuliert. In Ihrer Produktionsumgebung befänden sich diese inkrementellen Daten im Cloudspeicher.

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in die neue leere Notebookzelle ein. Dieser Code erstellt ein DataFrame mit zusätzlichen Daten zu Babynamen und schreibt diese Daten dann in eine CSV-Datei auf Ihrem Unity Catalog-Volume.

    Python

    data = [[2022, "CARL", "Albany", "M", 42]]
    
    df = spark.createDataFrame(data, schema="Year int, First_Name STRING, County STRING, Sex STRING, Count int")
    # display(df)
    (df.coalesce(1)
        .write
        .option("header", "true")
        .mode("overwrite")
        .csv(f"{path_volume}/{file_name}"))
    

    Scala

    val data = Seq((2022, "CARL", "Albany", "M", 42))
    val columns = Seq("Year", "First_Name", "County", "Sex", "Count")
    
    val df = data.toDF(columns: _*)
    
    // display(df)
    df.coalesce(1)
        .write
        .option("header", "true")
        .mode("overwrite")
        .csv(f"{pathVolume}/{fileName}")
    

    R

    # Load the SparkR package that is already preinstalled on the cluster.
    library(SparkR)
    
    data <- data.frame(Year = 2022,
        First_Name = "CARL",
        County = "Albany",
        Sex = "M",
        Count = 42)
    
    df <- createDataFrame(data)
    # display(df)
    write.df(df, path = paste0(path_volume, "/", file_name),
        source = "csv",
        mode = "overwrite",
        header = "true")
    
  2. Drücken Sie Shift+Enter, um die Zelle auszuführen, und wechseln Sie dann zur nächsten Zelle.

Schritt 4: Laden von Daten aus einer CSV-Datei in einen DataFrame

Hinweis

In diesem Schritt wird das Laden von Daten aus Cloudspeicher simuliert.

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in eine leere Notebookzelle ein. Dieser Code lädt die neuen Daten zu Babynamen aus der CSV-Datei in einen neuen DataFrame.

    Python

    df1 = spark.read.csv(f"{path_volume}/{file_name}",
        header=True,
        inferSchema=True,
        sep=",")
    display(df1)
    

    Scala

    val df1 = spark.read
        .option("header", "true")
        .option("inferSchema", "true")
        .option("delimiter", ",")
        .csv(s"$pathVolume/$fileName")
    display(df1)
    

    R

    df1 <- read.df(paste0(path_volume, "/", file_name),
        source = "csv",
        header = TRUE,
        inferSchema = TRUE)
    display(df1)
    
  2. Drücken Sie Shift+Enter, um die Zelle auszuführen, und wechseln Sie dann zur nächsten Zelle.

Schritt 5: Einfügen in eine vorhandene Tabelle

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in eine leere Notebookzelle ein. Dieser Code fügt die neuen Daten zu Babynamen aus dem DataFrame an die vorhandene Tabelle an.

    Python

    df.write.mode("append").insertInto(f"{path_table}.{table_name}")
    display(spark.sql(f"SELECT * FROM {path_table}.{table_name} WHERE Year = 2022"))
    

    Scala

    df1.write.mode("append").insertInto(s"${pathTable}.${tableName}")
    display(spark.sql(s"SELECT * FROM ${pathTable}.${tableName} WHERE Year = 2022"))
    

    R

    # The write.df function in R, as provided by the SparkR package, does not directly support writing to Unity Catalog.
    # In this example, you write the DataFrame into a temporary view and then use the SQL command to insert data from the temporary view to the Unity Catalog table
    createOrReplaceTempView(df1, "temp_view")
    sql(paste0("INSERT INTO ", path_table, ".", table_name, " SELECT * FROM temp_view"))
    display(sql(paste0("SELECT * FROM ", path_table, ".", table_name, " WHERE Year = 2022")))
    
  2. Drücken Sie Ctrl+Enter, um die Zelle auszuführen.

Erfassen zusätzlicher Datennotebooks

Verwenden Sie eines der folgenden Notebooks, um die Schritte in diesem Artikel auszuführen. Ersetzen Sie <catalog-name>, <schema-name> und <volume-name> durch die Katalog-, Schema- und Volumenamen für ein Unity Catalog-Volume. Ersetzen Sie optional den table_name-Wert durch einen Tabellennamen Ihrer Wahl.

Python

Erfassen und Einfügen zusätzlicher Daten mithilfe von Python

Notebook abrufen

Scala

Erfassen und Einfügen zusätzlicher Daten mithilfe von Scala

Notebook abrufen

R

Erfassen und Einfügen zusätzlicher Daten mithilfe von R

Notebook abrufen

Nächste Schritte

Informationen zum Bereinigen und Verbessern von Daten finden Sie unter Erste Schritte: Verbessern und Bereinigen von Daten.

Zusätzliche Ressourcen