Condividi tramite


Esercitazione: Importare e visualizzare i dati CSV da un notebook

Questa esercitazione illustra come usare un notebook di Azure Databricks per importare dati da un file CSV contenente i dati dei nomi figlio da health.data.ny.gov nel volume del catalogo Unity usando Python, Scala e R. Si apprenderà anche come modificare un nome di colonna, visualizzare i dati e salvarli in una tabella.

Annotazioni

Se si usa Databricks Free Edition, selezionare la scheda Python per tutti gli esempi di codice in questa esercitazione. Free Edition non supporta R o Scala. L'edizione gratuita limita inoltre l'accesso a Internet in uscita, quindi è necessario caricare il file CSV usando l'interfaccia utente dell'area di lavoro invece di scaricarlo con il codice. Per istruzioni dettagliate, vedere Il passaggio 3 .

Requisiti

Per completare queste attività, è necessario soddisfare i requisiti seguenti:

  • L'area di lavoro deve avere il Catalogo Unity abilitato. Per informazioni su come iniziare a usare Il catalogo unity, vedere Introduzione al catalogo unity. Per impostazione predefinita, Azure Databricks Free Edition e le aree di lavoro di prova gratuita hanno Unity Catalog abilitato.
  • È necessario avere il privilegio WRITE VOLUME per un volume, il privilegio USE SCHEMA per lo schema padre e il privilegio USE CATALOG per il catalogo padre. Gli utenti di Free Edition dispongono di questi privilegi per il catalogo e default lo schema dell'area di lavoro per impostazione predefinita.
  • È necessario disporre dell'autorizzazione per usare una risorsa di calcolo esistente o creare una nuova risorsa di calcolo. Vedere Calcolo o contattare l'amministratore di Azure Databricks.

Suggerimento

Per un notebook completo relativo a questo articolo, consultare "Importazione e visualizzazione di dati nei notebook".

Passaggio 1: Creare un nuovo notebook

Per creare un Notebook nell'area di lavoro, fare clic su Nuova iconaNuovo nella barra laterale e quindi su Notebook. Viene aperto un Notebook vuoto nell'area di lavoro.

Per altre informazioni sulla creazione e la gestione dei Notebook, vedere Gestire i Notebook.

Passaggio 2: definire le variabili

In questo passaggio si definiscono le variabili da usare nel Notebook di esempio creato in questo articolo. Sono necessari i nomi di un catalogo, uno schema e un volume di Unity Catalog.

Suggerimento

Se non si conoscono i nomi del catalogo e dello schema, fare clic sull'icona Dati.Catalogo nella barra laterale. Il catalogo dell'area di lavoro condivide un nome con l'area di lavoro ed è elencato nel pannello del catalogo. Espanderlo per visualizzare gli schemi disponibili. Gli utenti della versione di valutazione gratuita e dell'edizione gratuita possono usare il catalogo dell'area di lavoro e lo default schema.

Se non si dispone di un volume, crearne uno eseguendo il comando seguente in una cella del notebook (sostituire <catalog_name> e <schema_name> con i valori):

CREATE VOLUME IF NOT EXISTS <catalog_name>.<schema_name>.my_volume
  1. Copiare e incollare il codice seguente nella nuova cella vuota del Notebook. Sostituire <catalog-name>, <schema-name>e <volume-name> con i nomi di catalogo, schema e volume per un volume di Unity Catalog. Facoltativamente, sostituire il valore table_name con un nome di tabella di propria scelta. I dati relativi al nome del bambino vengono salvati in questa tabella più avanti in questo articolo.

  2. Premere Shift+Enter per eseguire la cella e creare una nuova cella vuota.

    Pitone

    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
    

    Linguaggio di programmazione 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
    

Step 3: importare il file CSV

In questo passaggio importa un file CSV contenente dati sui nomi di bambini da health.data.ny.gov nel volume di Unity Catalog. Scegliere una delle seguenti modalità:

  • Caricare usando l'interfaccia utente dell'area di lavoro : usare questo metodo se si usa Databricks Free Edition o se il download del codice nell'opzione B ha esito negativo con un errore di rete. Free Edition e altri ambienti di calcolo serverless limitano l'accesso a Internet in uscita, quindi è necessario caricare il file dal computer locale.
  • Scaricare usando un codice — Utilizzare questo metodo se l'ambiente di calcolo ha accesso a Internet in uscita.

Opzione A: Caricare usando l'interfaccia utente dell'area di lavoro

  1. Nel computer locale aprire health.data.ny.gov/api/views/jxy9-yhdk/rows.csv nel browser. Il file viene scaricato nel computer come rows.csv.
  2. Trovare il file scaricato nel computer e rinominarlo da rows.csv a baby_names.csv. Corrisponde alla file_name variabile definita nel passaggio 2.
  3. Tornare all'area di lavoro di Azure Databricks. Nella barra laterale fare clic su Nuova iconaNuovo > Aggiungi o carica dati.
  4. Clicca su Carica file in un volume.
  5. Fare clic su Sfoglia e selezionare il baby_names.csv file oppure trascinarlo nell'area di caricamento.
  6. In Volume di destinazione selezionare il volume specificato nel passaggio 2.
  7. Al termine del caricamento, tornare al notebook e continuare con il passaggio 4.

Per altre informazioni sul caricamento dei file, vedere Caricare file in un volume del catalogo Unity.

Opzione B: Scaricare usando il codice

  1. Copiare e incollare il codice seguente nella nuova cella vuota del Notebook. Questo codice copia il rows.csv file da health.data.ny.gov nel volume di Unity Catalog usando il comando dbutils di Databricks .

  2. Premere Shift+Enter per eseguire la cella e poi passare alla cella successiva.

    Pitone

    dbutils.fs.cp(f"{download_url}", f"{path_volume}" + "/" + f"{file_name}")
    

    Linguaggio di programmazione Scala

    dbutils.fs.cp(downloadUrl, s"${pathVolume}/${fileName}")
    

    R

    dbutils.fs.cp(download_url, paste(path_volume, "/", file_name, sep = ""))
    

Fase 4: Carica i dati CSV in un DataFrame

In questo passaggio si crea un dataframe denominato df dal file CSV caricato in precedenza nel volume del catalogo Unity usando il metodo spark.read.csv.

  1. Copiare e incollare il codice seguente nella nuova cella vuota del Notebook. Questo codice carica i dati dei nomi de bambini nel DataFrame df dal file CSV.

  2. Premere Shift+Enter per eseguire la cella e poi passare alla cella successiva.

    Pitone

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

    Linguaggio di programmazione 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 = ",")
    

È possibile caricare i dati da molti formati di file supportati.

Step 5: Visualizzare i dati dal notebook

In questo passaggio si usa il metodo display() per mostrare il contenuto del DataFrame in una tabella nel notebook e quindi visualizzare i dati in un grafico a nuvola di parole nel notebook.

  1. Copia e incolla il codice seguente nella nuova cella vuota del notebook, poi clicca Esegui cella per visualizzare i dati in una tabella.

    Pitone

    display(df)
    

    Linguaggio di programmazione Scala

    display(df)
    

    R

    display(df)
    
  2. Esaminare i risultati nella tabella.

  3. Accanto alla tab Tabella , fare clic su e quindi su Visualizzazione.

  4. Nell'editor di visualizzazione fare clic su Tipo di visualizzazione e verificare che sia selezionata la nuvola di parole.

  5. Nella colonna parole verificare che sia selezionato First Name.

  6. In Limite frequenze, clicca su 35.

    Grafico a nuvola di parole

  7. Fare clic su Salva.

Passaggio 6: Salvare il dataframe in una tabella

Importante

Per salvare il DataFrame in Unity Catalog, è necessario disporre di privilegi di tabella CREATE per il catalogo e lo schema. Per informazioni sulle autorizzazioni in Unity Catalog, vedere Privilegi e oggetti proteggibili in Unity Catalog e Gestione dei privilegi in Unity Catalog.

  1. Copiare il codice seguente e incollarlo in una cella vuota del notebook. Questo codice sostituisce uno spazio nel nome della colonna. caratteri speciali, ad esempio gli spazi non sono consentiti nei nomi di colonna. Questo codice usa il metodo Apache Spark withColumnRenamed().

    Pitone

    df = df.withColumnRenamed("First Name", "First_Name")
    df.printSchema
    

    Linguaggio di programmazione 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)
    
  2. Copiare il codice seguente e incollarlo in una cella vuota del notebook. Questo codice salva il contenuto del dataframe in una tabella nel catalogo Unity usando la variabile nome tabella definita all'inizio di questo articolo.

    Pitone

    df.write.mode("overwrite").saveAsTable(f"{path_table}" + "." + f"{table_name}")
    

    Linguaggio di programmazione Scala

    dfRenamedColumn.write.mode("overwrite").saveAsTable(s"${pathTable}.${tableName}")
    

    R

    saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
    
  3. Per verificare che la tabella sia stata salvata, fare clic su Catalogo nella barra laterale sinistra per aprire l'interfaccia utente di Esplora cataloghi. Aprire il catalogo e quindi lo schema per verificare che venga visualizzata la tabella.

  4. Fare clic sulla tabella per visualizzare lo schema della tabella nella scheda panoramica .

  5. Fare clic su dati di esempio per visualizzare 100 righe di dati dalla tabella.

Importare e visualizzare i notebook di dati

Usare uno dei Notebook seguenti per eseguire la procedura descritta in questo articolo. Sostituire <catalog-name>, <schema-name>e <volume-name> con i nomi di catalogo, schema e volume per un volume di Unity Catalog. Facoltativamente, sostituire il valore table_name con un nome di tabella di propria scelta.

Pitone

Importare dati da CSV usando Python

Prendi il taccuino

Linguaggio di programmazione Scala

Importare dati da CSV usando Scala

Prendi il taccuino

R

Importare dati da CSV usando R

Prendi il taccuino

Passaggi successivi

Risorse aggiuntive