Partilhar via


Tutorial: Importar e visualizar dados CSV de um bloco de anotações

Este tutorial orienta você pelo uso de um bloco de anotações do Azure Databricks para importar dados de um arquivo CSV contendo dados de nome de bebê de health.data.ny.gov para o volume do Catálogo Unity usando Python, Scala e R. Você também aprende a modificar um nome de coluna, visualizar os dados e salvar em uma tabela.

Observação

Se estiveres a usar o Databricks Free Edition, seleciona o separador Python para todos os exemplos de código neste tutorial. A Free Edition não suporta R nem Scala. Além disso, a Free Edition restringe o acesso à internet de saída, por isso deve carregar o ficheiro CSV usando a interface do workspace em vez de o descarregar com código. Consulte o Passo 3 para instruções detalhadas.

Requisitos

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

  • Seu espaço de trabalho deve ter Unity Catalog habilitado. Para obter informações sobre como começar a usar o Unity Catalog, consulte Introdução ao Unity Catalog. O Azure Databricks Free Edition e os espaços de trabalho de teste gratuitos têm o Unity Catalog ativado por defeito.
  • Você deve ter o privilégio WRITE VOLUME num volume, o privilégio USE SCHEMA no esquema pai e o privilégio USE CATALOG no catálogo pai. Os utilizadores da Free Edition têm estes privilégios no catálogo e default esquema do espaço de trabalho por defeito.
  • Você deve ter permissão para usar um recurso de computação existente ou criar um novo recurso de computação. Veja Compute ou consulte o seu administrador do Azure Databricks.

Gorjeta

Para obter um bloco de anotações concluído para este artigo, consulte Importar e visualizar blocos de anotações de dados.

Etapa 1: Criar um novo bloco de anotações

Para criar um bloco de notas na sua área de trabalho, clique Novo íconeem Novo na barra lateral e, em seguida, clique em Bloco de Notas. Um bloco de anotações em branco é aberto no espaço de trabalho.

Para saber mais sobre como criar e gerir blocos de notas, consulte Gerir blocos de notas.

Etapa 2: Definir variáveis

Nesta etapa, você define variáveis para uso no bloco de anotações de exemplo criado neste artigo. Precisas dos nomes de um catálogo do Unity Catalog, de um esquema do Unity Catalog, e de um volume do Unity Catalog.

Gorjeta

Se não souber o seu catálogo e nomes de esquemas, clique no ícone de Dados.Catálogo na barra lateral. O catálogo de espaços de trabalho partilha um nome com o seu espaço de trabalho e está listado no painel do catálogo. Expande-o para ver os esquemas disponíveis. Os utilizadores da Edição Gratuita e da versão de avaliação gratuita podem usar o catálogo do espaço de trabalho e o default esquema.

Se não tiver um volume, crie um executando o seguinte comando numa célula de caderno (substitua <catalog_name> e <schema_name> pelos seus 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 bloco de anotações. Substitua <catalog-name>, <schema-name>e <volume-name> pelos nomes de catálogo, esquema e volume de um volume do Catálogo Unity. Opcionalmente, substitua o valor table_name por um nome de tabela de sua escolha. Guarda os dados do nome do bebé nesta tabela mais à frente 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
    

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

Etapa 3: Importar arquivo CSV

Nesta etapa, importa-se um arquivo CSV com dados sobre nomes de bebés do health.data.ny.gov para o volume do Catálogo Unity. Escolha um dos métodos seguintes:

  • Carregar usando a interface do workspace — Use este método se estiver na Databricks Free Edition, ou se o download do código na opção B falhar devido a um erro de rede. A Free Edition e outros ambientes de computação serverless restringem o acesso à internet de saída, por isso deve carregar o ficheiro a partir da sua máquina local.
  • Descarregue usando código — Use este método se o seu ambiente de computação tiver acesso à internet de saída.

Opção A: Carregar usando a interface do espaço de trabalho

  1. Na sua máquina local, abra health.data.ny.gov/api/views/jxy9-yhdk/rows.csv no seu navegador. O ficheiro é descarregado para o seu computador como rows.csv.
  2. Encontre o ficheiro descarregado no seu computador e renomeie-o de rows.csv para baby_names.csv. Isto corresponde à file_name variável que definiste no Passo 2.
  3. Volta ao teu espaço de trabalho Azure Databricks. Na barra lateral, clique em Novo ÍconeNovo > Adicionar ou carregar dados.
  4. Clique em Carregar ficheiros para um volume.
  5. Clique Navegar e seleciona o baby_names.csv ficheiro, ou arrasta-o e larga-o na área de carregamento.
  6. Em Volume de destino, selecione o volume que especificou no Passo 2.
  7. Depois de terminar o upload, volte ao seu caderno e continue com o Passo 4.

Para mais detalhes sobre o carregamento de ficheiros, consulte Carregar ficheiros para um volume do Catálogo Unity.

Opção B: Descarregar usando código

  1. Copie e cole o código a seguir na nova célula vazia do bloco de anotações. Este código copia o ficheiro rows.csv de health.data.ny.gov para o seu volume do Catálogo Unity usando o comando Databricks dbutils.

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

    Python

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

    linguagem de programação Scala

    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ê cria um DataFrame chamado df a partir do arquivo CSV que você carregou anteriormente no volume do Catálogo Unity usando o método spark.read.csv.

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

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

    Python

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

    linguagem de programação 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 = ",")
    

Você pode carregar dados de muitos formatos de arquivo suportados.

Etapa 5: visualizar dados do notebook

Nesta etapa, você usa o método display() para exibir o conteúdo do DataFrame em uma tabela no bloco de anotações e, em seguida, visualizar os dados em um gráfico de nuvem de palavras no bloco de anotações.

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

    Python

    display(df)
    

    linguagem de programação Scala

    display(df)
    

    R

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

  3. Ao lado do separador Tabela, clique em + 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á selecionada.

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

  6. No Limites de Frequências, clique em 35.

    Gráfico de nuvem de palavras

  7. Clique em Guardar.

Etapa 6: Salvar o DataFrame em uma tabela

Importante

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

  1. Copie e cole o código a seguir em uma célula vazia do bloco de anotações. 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. Este código usa o método Apache Spark withColumnRenamed() .

    Python

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

    linguagem de programação 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. Copie e cole o código a seguir em uma célula vazia do bloco de anotações. Esse código salva o conteúdo do DataFrame em uma tabela no Unity Catalog 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}")
    

    linguagem de programação Scala

    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 utilizador do Catalog Explorer. Abra o catálogo e, em seguida, o esquema para verificar se a tabela aparece.

  4. Clique na tabela para visualizar o esquema da tabela na aba Visão Geral.

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

Importar e visualizar blocos de anotações de dados

Use um dos seguintes blocos de anotações para executar as etapas neste artigo. Substitua <catalog-name>, <schema-name>e <volume-name> pelos nomes de catálogo, esquema e volume de um volume do Catálogo Unity. Opcionalmente, substitua o valor table_name por um nome de tabela de sua escolha.

Python

Importar dados de CSV usando Python

Obter bloco de notas

linguagem de programação Scala

Importar dados do CSV usando o Scala

Obter bloco de notas

R

Importar dados do CSV usando R

Obter bloco de notas

Próximos passos

Recursos adicionais