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, dasUSE SCHEMA
-Recht für das übergeordnete Schema und dasUSE 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 Neu 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.
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 dentable_name
-Wert durch einen Tabellennamen Ihrer Wahl. Im weiteren Verlauf dieses Artikels speichern Sie die Babynamendaten in dieser Tabelle.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.
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")
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.
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)
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
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")))
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
Scala
Erfassen und Einfügen zusätzlicher Daten mithilfe von Scala
R
Erfassen und Einfügen zusätzlicher Daten mithilfe von R
Nächste Schritte
Informationen zum Bereinigen und Verbessern von Daten finden Sie unter Erste Schritte: Verbessern und Bereinigen von Daten.