Condividi tramite


Introduzione: Importare e visualizzare i dati CSV da un notebook

Questo articolo illustra come usare un notebook di Azure Databricks per importare dati da un file CSV contenente i dati sui nomi per i bambini da health.data.ny.gov in Unity Catalog usando Python, Scala e R. Si apprenderà anche come modificare un nome di colonna, visualizzare i dati e salvarli in una tabella.

Requisiti

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

  • L'area di lavoro deve avere lo Unity Catalog abilitato. Per informazioni su come iniziare a usare Unity Catalog, vedere Configurare e gestire Unity Catalog.
  • L'utente deve inoltre disporre del privilegio WRITE VOLUME per il catalogo padre del volume, il privilegio USE SCHEMA per lo schema padre e del privilegio USE CATALOG per il catalogo padre.
  • È necessario disporre dell'autorizzazione per usare una risorsa di calcolo esistente o creare una nuova risorsa di calcolo. Si veda Introduzione: configurazione dell'account e dell'area di lavoro o l'amministratore di Databricks.

Suggerimento

Per un notebook completo relativo a questo articolo, consultare Importare e visualizzare i notebook di dati.

Passaggio 1: Creare un nuovo notebook

Per creare un Notebook nell'area di lavoro, fare clic su Nuova icona Nuovo 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.

  1. Copiare il seguente codice e incollarlo in una nuova cella vuota del notebook. Sostituire <catalog-name>, <schema-name> e <volume-name> con i nomi del catalogo, dello schema e del volume per un volume di Unity Catalog. Opzionalmente, sostituire il valore table_name con il nome desiderato per la tabella. I dati relativi ai nomi dei bambini verranno salvati in questa tabella più avanti in questo articolo.

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

    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
    

Step 3: importare il file CSV

In questo passaggio si importa un file CSV contenente i dati sui nomi dei bambini importati da health.data.ny.gov nel volume di Unity Catalog.

  1. Copiare il seguente codice e incollarlo in una 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 Databricks dbutils.

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

    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 = ""))
    

Step 4: Caricare dati CSV in un DataFrame

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

  1. Copiare il seguente codice e incollarlo in una 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.

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

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

Step 5: Visualizzare i dati dal notebook

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

  1. Copiare e incollare il seguente codice nella nuova cella vuota del notebook, quindi fare clic su Esegui cella per visualizzare i dati in una tabella.

    Python

    display(df)
    

    Scala

    display(df)
    

    R

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

  3. Accanto alla scheda Tabella fare clic su + e poi 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 First Name sia selezionata.

  6. In Limiti frequenze fare clic su 35.

    Grafico a nuvola di parole

  7. Fare clic su Salva.

Step 6: Salvare il DataFrame in una tabella

Importante

Per salvare il DataFrame in Unity Catalog, è necessario disporre CREATE dei privilegi di tabella per la libreria e lo schema. Per informazioni sulle autorizzazioni nello Unity Catalog, consultare Privilegi e oggetti a protezione diretta in Unity Catalog e Gestire i privilegi in Unity Catalog.

  1. Copiare il codice seguente e incollarlo in una cella vuota del notebook. Questo codice sostituisce uno spazio nella colonna dei nomi. I caratteri speciali, come ad esempio gli spazi, non sono consentiti. Questo codice usa il metodo Apache Spark 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)
    
  2. Copiare il codice seguente e incollarlo in una cella vuota del notebook. Questo codice salva il contenuto del DataFrame in una tabella in Unity Catalog usando la variabile definita all'inizio di questo articolo.

    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")
    
  3. Per verificare che la tabella sia stata salvata, fare clic su Catalogo nella barra laterale sinistra per aprire l'interfaccia utente Catalog Explorer. Aprire la libreria e quindi lo schema per verificare che venga visualizzata la tabella.

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

  5. Fare clic su Dati 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 del catalogo, dello schema e del volume per un volume di Unity Catalog. Opzionalmente, sostituire il valore table_name con il nome desiderato per la tabella.

Python

Importare dati da CSV usando Python

Ottenere il notebook

Scala

Importare dati da CSV usando Scala

Ottenere il notebook

R

Importare dati da CSV usando R

Ottenere il notebook

Passaggi successivi

Risorse aggiuntive