Aan de slag: CSV-gegevens importeren en visualiseren vanuit een notebook
In dit artikel wordt uitgelegd hoe u een Azure Databricks-notebook gebruikt om gegevens te importeren uit een CSV-bestand met babynaamgegevens uit health.data.ny.gov in uw Unity Catalog-volume met behulp van Python, Scala en R. U leert ook hoe u een kolomnaam wijzigt, de gegevens visualiseert en opslaat in een tabel.
Vereisten
Als u de taken in dit artikel wilt uitvoeren, moet u voldoen aan de volgende vereisten:
- Voor uw werkruimte moet Unity Catalog zijn ingeschakeld. Zie Unity Catalog instellen en beheren voor meer informatie over hoe u aan de slag gaat met Unity Catalog.
- U moet beschikken over de
WRITE VOLUME
bevoegdheid op een volume, deUSE SCHEMA
bevoegdheid voor het bovenliggende schema en deUSE CATALOG
bevoegdheid voor de bovenliggende catalogus. - U moet gemachtigd zijn om een bestaande rekenresource te gebruiken of een nieuwe rekenresource te maken. Zie Aan de slag: Account en werkruimte instellen of uw Databricks-beheerder zien.
Tip
Zie Gegevensnotitieblokken importeren en visualiseren voor een voltooid notitieblok voor dit artikel.
Stap 1: Een nieuw notitieblok maken
Als u een notitieblok in uw werkruimte wilt maken, klikt u op Nieuw in de zijbalk en vervolgens op Notitieblok. Er wordt een leeg notitieblok geopend in de werkruimte.
Zie Notitieblokken beheren voor meer informatie over het maken en beheren van notitieblokken.
Stap 2: Variabelen definiƫren
In deze stap definieert u variabelen voor gebruik in het voorbeeldnotitieblok dat u in dit artikel maakt.
Kopieer en plak de volgende code in de nieuwe lege notebookcel. Vervang ,
<schema-name>
en<volume-name>
door<catalog-name>
de catalogus-, schema- en volumenamen voor een Unity Catalog-volume. Vervang eventueel detable_name
waarde door een tabelnaam van uw keuze. U slaat de gegevens van de babynaam verderop in dit artikel op in deze tabel.Druk
Shift+Enter
om de cel uit te voeren en een nieuwe lege cel te maken.Python
catalog = "<catalog_name>" schema = "<schema_name>" volume = "<volume_name>" download_url = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv" file_name = "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 downloadUrl = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv" val fileName = "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>" download_url <- "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv" file_name <- "baby_names.csv" table_name <- "baby_names" path_volume <- paste("/Volumes/", catalog, "/", schema, "/", volume, sep = "") path_table <- paste(catalog, ".", schema, sep = "") print(path_volume) # Show the complete path print(path_table) # Show the complete path
Stap 3: CSV-bestand importeren
In deze stap importeert u een CSV-bestand met babynaamgegevens uit health.data.ny.gov in uw Unity Catalog-volume.
Kopieer en plak de volgende code in de nieuwe lege notebookcel. Met deze code wordt het
rows.csv
bestand van health.data.ny.gov naar uw Unity Catalog-volume gekopieerd met behulp van de databricks-opdracht dbutuils .Druk
Shift+Enter
om de cel uit te voeren en naar de volgende cel te gaan.Python
dbutils.fs.cp(f"{download_url}", f"{path_volume}" + "/" + f"{file_name}")
Scala
dbutils.fs.cp(downloadUrl, s"${pathVolume}/${fileName}")
R
dbutils.fs.cp(download_url, paste(path_volume, "/", file_name, sep = ""))
Stap 4: CSV-gegevens laden in een DataFrame
In deze stap maakt u een DataFrame met de naam df
van het CSV-bestand dat u eerder in uw Unity Catalog-volume hebt geladen met behulp van de methode spark.read.csv .
Kopieer en plak de volgende code in de nieuwe lege notebookcel. Met deze code worden babynaamgegevens vanuit het CSV-bestand in DataFrame
df
geladen.Druk
Shift+Enter
om de cel uit te voeren en naar de volgende cel te gaan.Python
df = spark.read.csv(f"{path_volume}/{file_name}", header=True, inferSchema=True, sep=",")
Scala
val df = spark.read .option("header", "true") .option("inferSchema", "true") .option("delimiter", ",") .csv(s"${pathVolume}/${fileName}")
R
# Load the SparkR package that is already preinstalled on the cluster. library(SparkR) df <- read.df(paste(path_volume, "/", file_name, sep=""), source="csv", header = TRUE, inferSchema = TRUE, delimiter = ",")
U kunt gegevens laden uit een groot aantal ondersteunde bestandsindelingen.
Stap 5: Gegevens uit notebook visualiseren
In deze stap gebruikt u de display()
methode om de inhoud van het DataFrame weer te geven in een tabel in het notebook en visualiseert u vervolgens de gegevens in een woordwolkdiagram in het notebook.
Kopieer en plak de volgende code in de nieuwe lege notebookcel en klik op Cel uitvoeren om de gegevens in een tabel weer te geven.
Python
display(df)
Scala
display(df)
R
display(df)
Bekijk de resultaten in de tabel.
Klik naast het tabblad Tabel op + Visualisatie en klik vervolgens op Visualisatie.
Klik in de visualisatie-editor op Visualisatietype en controleer of word-cloud is geselecteerd.
Controleer of dit
First Name
is geselecteerd in de kolom Woorden.Klik in frequentielimiet op
35
.Klik op Opslaan.
Stap 6: Het DataFrame opslaan in een tabel
Belangrijk
Als u uw DataFrame in Unity Catalog wilt opslaan, moet u tabelbevoegdheden hebben CREATE
voor de catalogus en het schema. Zie Bevoegdheden en beveiligbare objecten in Unity Catalog en bevoegdheden beheren in Unity Catalog voor meer informatie over machtigingen in Unity Catalog.
Kopieer en plak de volgende code in een lege notebookcel. Deze code vervangt een spatie in de kolomnaam. Speciale tekens, zoals spaties, zijn niet toegestaan in kolomnamen. Deze code maakt gebruik van de Apache Spark-methode
withColumnRenamed()
.Python
df = df.withColumnRenamed("First Name", "First_Name") df.printSchema
Scala
val dfRenamedColumn = df.withColumnRenamed("First Name", "First_Name") // when modifying a DataFrame in Scala, you must assign it to a new variable dfRenamedColumn.printSchema()
R
df <- withColumnRenamed(df, "First Name", "First_Name") printSchema(df)
Kopieer en plak de volgende code in een lege notebookcel. Met deze code wordt de inhoud van het DataFrame opgeslagen in een tabel in Unity Catalog met behulp van de tabelnaamvariabele die u aan het begin van dit artikel hebt gedefinieerd.
Python
df.write.mode("overwrite").saveAsTable(f"{path_table}" + "." + f"{table_name}")
Scala
dfRenamedColumn.write.mode("overwrite").saveAsTable(s"${pathTable}.${tableName}")
R
saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
Als u wilt controleren of de tabel is opgeslagen, klikt u op Catalogus in de linkerzijbalk om de gebruikersinterface van Catalog Explorer te openen. Open uw catalogus en vervolgens uw schema om te controleren of de tabel wordt weergegeven.
Klik op de tabel om het tabelschema weer te geven op het tabblad Overzicht .
Klik op Voorbeeldgegevens om 100 rijen met gegevens uit de tabel weer te geven.
Gegevensnotitieblokken importeren en visualiseren
Gebruik een van de volgende notebooks om de stappen in dit artikel uit te voeren. Vervang , <schema-name>
en <volume-name>
door <catalog-name>
de catalogus-, schema- en volumenamen voor een Unity Catalog-volume. Vervang eventueel de table_name
waarde door een tabelnaam van uw keuze.
Python
Gegevens importeren uit CSV met behulp van Python
Scala
Gegevens importeren uit CSV met behulp van Scala
R
Gegevens importeren uit CSV met R
Volgende stappen
- Zie Aan de slag voor het opnemen en invoegen van extra gegevens in een bestaande tabel vanuit een CSV-bestand voor meer informatie over het toevoegen van aanvullende gegevens.
- Zie Aan de slag voor meer informatie over het opschonen en verbeteren van gegevens: Gegevens verbeteren en opschonen.