Compartilhar via


Tutorial: Importar e visualizar dados CSV de um notebook

Este tutorial explica como usar um notebook do Azure Databricks para importar dados de um arquivo CSV que contém dados de nome de bebê de health.data.ny.gov para o volume do Catálogo do Unity usando Python, Scala e R. Você também aprenderá a modificar um nome de coluna, visualizar os dados e salvar em uma tabela.

Observação

Se você estiver usando o Databricks Free Edition, selecione a guia Python para todos os exemplos de código neste tutorial. O Free Edition não dá suporte a R ou Scala. Além disso, a versão Free Edition restringe o acesso de saída à Internet, portanto, você deve carregar o arquivo CSV pela interface do usuário do workspace em vez de baixá-lo com código. Consulte a Etapa 3 para obter instruções detalhadas.

Requisitos

Para concluir as tarefas neste artigo, você deve atender aos seguintes requisitos:

  • Seu espaço de trabalho deve ter o Catálogo do Unity habilitado. Para obter informações sobre como começar a usar o Catálogo do Unity, consulte Introdução ao Catálogo do Unity. Azure Databricks Free Edition e os workspaces de avaliação gratuita têm o Unity Catalog habilitado por padrão.
  • Você deve ter o privilégio WRITE VOLUME em um volume, o privilégio USE SCHEMA no esquema pai e o privilégio USE CATALOG no catálogo pai. Os usuários do Free Edition têm esses privilégios no catálogo do workspace e default no esquema por padrão.
  • Você deve ter permissão para usar um recurso de computação existente ou criar um recurso de computação. Consulte Computação ou consulte o administrador do Azure Databricks.

Dica

Para obter um notebook concluído para este artigo, consulte Importar e visualizar notebooks de dados.

Etapa 1: Criar um notebook

Para criar um bloco de notas na sua área de trabalho, clique em ícone NovoNovo na barra lateral e, em seguida, clique em Notebook. Um notebook em branco é aberto no workspace.

Para saber mais sobre como criar e gerenciar notebooks, consulte Gerenciar notebooks.

Etapa 2: definir variáveis

Nesta etapa, você definirá variáveis para uso no notebook de exemplo criado neste artigo. Você precisa dos nomes de um catálogo, esquema e volume do Unity Catalog.

Dica

Se você não souber seus nomes de catálogo e esquema, clique no ícone Dados.Catálogo na barra lateral. O catálogo do espaço de trabalho compartilha um nome com seu espaço de trabalho e está listado no painel do catálogo. Expanda-o para ver os esquemas disponíveis. Os usuários de versão gratuita e avaliação gratuita podem usar o catálogo de espaços de trabalho e o esquema default.

Se você não tiver um volume, crie um executando o seguinte comando em uma célula de notebook (substitua <catalog_name> e <schema_name> pelos valores):

CREATE VOLUME IF NOT EXISTS <catalog_name>.<schema_name>.my_volume
  1. Copie e cole o código a seguir na nova célula vazia do notebook. Substitua <catalog-name>, <schema-name> e <volume-name> pelos nomes do catálogo, esquema e volume de um volume do Catálogo do Unity. Opcionalmente, substitua o valor table_name por um nome de tabela à sua escolha. Você salvará os dados do nome do bebê nesta tabela mais adiante neste artigo.

  2. Pressione Shift+Enter para executar a célula e criar uma nova célula em branco.

    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 (linguagem de programação)

    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
    

Etapa 3: importar arquivo CSV

Nesta etapa, você importará um arquivo CSV que contém dados de nome de bebê de health.data.ny.gov para o volume do Catálogo do Unity. Use um dos seguintes métodos:

  • Carregar usando a interface do usuário do workspace – use esse método se você estiver no Databricks Free Edition ou se o download de código na opção B falhar com um erro de rede. O Free Edition e outros ambientes de computação sem servidor restringem o acesso à Internet de saída, portanto, você deve carregar o arquivo do computador local.
  • Baixar usando código – use esse método se o ambiente de computação tiver acesso à Internet de saída.

Opção A: Fazer upload usando a interface do usuário (UI) do workspace

  1. No computador local, abra health.data.ny.gov/api/views/jxy9-yhdk/rows.csv no navegador. O arquivo é baixado em seu computador como rows.csv.
  2. Localize o arquivo baixado em seu computador e renomeie-o de rows.csv para baby_names.csv. Isso corresponde à file_name variável que você definiu na Etapa 2.
  3. Volte para o workspace do Azure Databricks. Na barra lateral, clique em Novo ÍconeNovo > Adicionar ou carregue dados.
  4. Clique em Carregar arquivos em um volume.
  5. Clique em navegar e selecione o baby_names.csv arquivo, ou arraste-o e solte-o na área de carregamento.
  6. Em Volume de destino, selecione o volume especificado na Etapa 2.
  7. Após a conclusão do upload, retorne ao bloco de anotações e continue com a Etapa 4.

Para obter mais detalhes sobre como carregar arquivos, consulte Carregar arquivos em um volume do Catálogo do Unity.

Opção B: baixar usando o código

  1. Copie e cole o código a seguir na nova célula vazia do notebook. Esse código copia o arquivo rows.csv do site health.data.ny.gov no volume do Unity Catalog usando o comando Databricks dbutils.

  2. Pressione Shift+Enter para executar a célula e depois vá para a próxima célula.

    Python

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

    Scala (linguagem de programação)

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

    R

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

Etapa 4: carregar dados CSV em um DataFrame

Nesta etapa, você criará um DataFrame chamado df do arquivo CSV que você carregou anteriormente no volume do Catálogo do Unity usando o método spark.read.csv.

  1. Copie e cole o código a seguir na nova célula vazia do notebook. Esse código carrega dados de nome de bebê no DataFrame df do arquivo CSV.

  2. Pressione Shift+Enter para executar a célula e depois vá para a próxima célula.

    Python

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

    Scala (linguagem de programação)

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

Você pode carregar dados de muitos formatos de arquivo com suporte.

Etapa 5: Visualizar os dados do notebook

Nesta etapa, você usará o método display() para exibir o conteúdo do DataFrame em uma tabela no notebook e visualizar os dados em um gráfico de nuvem de palavras no notebook.

  1. Copie e cole o código a seguir na nova célula vazia do notebook e clique em Executar célula para exibir os dados em uma tabela.

    Python

    display(df)
    

    Scala (linguagem de programação)

    display(df)
    

    R

    display(df)
    
  2. Examine os resultados na tabela.

  3. Ao lado da guia Tabela, clique + e, em seguida, clique em Visualização.

  4. No editor de visualização, clique em Tipo de visualização e verifique se a nuvem de palavras está selecionado.

  5. Na coluna de palavras, verifique se First Name está selecionado.

  6. Em limite de frequências, clique em 35.

    gráfico de nuvem de palavras

  7. Clique em Save (Salvar).

Etapa 6: salvar o DataFrame em uma tabela

Importante

Para salvar seu DataFrame no Catálogo do Unity, você deve ter privilégios de tabela CREATE no catálogo e no esquema. Para obter informações sobre permissões no Catálogo do Unity, consulte Privilégios e objetos protegíveis no Catálogo do Unity e Gerenciar privilégios no Catálogo do Unity.

  1. Copie e cole o código a seguir em uma célula vazia do notebook. Este código substitui um espaço no nome da coluna. Caracteres especiais, como espaços, não são permitidos em nomes de coluna. Esse código usa o método withColumnRenamed() do Apache Spark.

    Python

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

    Scala (linguagem de programação)

    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. Copie e cole o código a seguir em uma célula vazia do notebook. Esse código salva o conteúdo do DataFrame em uma tabela no Catálogo do Unity usando a variável de nome de tabela que você definiu no início deste artigo.

    Python

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

    Scala (linguagem de programação)

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

    R

    saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
    
  3. Para verificar se a tabela foi salva, clique em Catálogo na barra lateral esquerda para abrir a interface do usuário do Gerenciador de Catálogos. Abra o catálogo e, em seguida, o esquema para verificar se a tabela é exibida.

  4. Clique na tabela para exibir o esquema de tabela na guia Visão.

  5. Clique em Dados de Exemplo para exibir 100 linhas de dados da tabela.

Importar e visualizar notebooks de dados

Use um dos notebooks a seguir para seguir as etapas desse artigo. Substitua <catalog-name>, <schema-name> e <volume-name> pelos nomes do catálogo, esquema e volume de um volume do Catálogo do Unity. Opcionalmente, substitua o valor table_name por um nome de tabela à sua escolha.

Python

Importar dados do CSV usando Python

Obter notebook

Scala (linguagem de programação)

Importar dados do CSV usando Scala

Obter notebook

R

Importar dados do CSV usando R

Obter notebook

Próximas etapas

Recursos adicionais