Introdução: importação e visualização dos dados CSV de um notebook

Este artigo o orienta no uso do Databricks Notebook para importar dados de um arquivo CSV que contém dados de nomes de bebês do health.data.ny.gov para o seu volume Unity Catalog usando Python, Scala e R. O senhor também aprenderá a modificar o nome de uma coluna, visualizar os dados e salvar em uma tabela.

Requisitos

Para concluir a tarefa neste artigo, o senhor deve atender aos seguintes requisitos:

Dica

Para obter um Notebook completo para este artigo, consulte Import and visualize data Notebook.

Passo 1: criação de um novo notebook

Para criar um notebook no seu workspace, clique em Novo ícone Novo na barra lateral e clique em Notebook. Um notebook em branco será aberto no workspace.

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

Passo 2: definição das variáveis

Neste passo, o senhor define variáveis para uso no exemplo Notebook que criou neste artigo.

  1. Copie e cole o código a seguir na nova célula vazia do site Notebook. Substitua <catalog-name>, <schema-name> e <volume-name> pelos nomes de catálogo, esquema e volume de um volume do Unity Catalog. Substitua <table_name> por um nome de tabela de sua escolha. O senhor salvará os dados do nome do bebê nessa tabela mais adiante neste artigo.

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

    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
    
    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
    
    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
    

o passo 3: Importar o arquivo CSV

Neste passo, o senhor importa um arquivo CSV que contém dados de nomes de bebês do site health.data.ny.gov para o volume Unity Catalog.

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

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

    dbutils.fs.cp(f"{download_url}", f"{path_volume}" + "/" + f"{file_name}")
    
    dbutils.fs.cp(downloadUrl, s"${pathVolume}/${fileName}")
    
    dbutils.fs.cp(download_url, paste(path_volume, "/", file_name, sep = ""))
    

Passo 4: carregamento de dados CSV em um DataFrame

Nesta etapa, você criará um DataFrame chamado df a partir do arquivo CSV que você carregou anteriormente em seu volume do Unity Catalog 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 nomes de bebês no DataFrame df a partir do arquivo CSV.

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

    df = spark.read.csv(f"{path_volume}/{file_name}",
      header=True,
      inferSchema=True,
      sep=",")
    
    val df = spark.read
        .option("header", "true")
        .option("inferSchema", "true")
        .option("delimiter", ",")
        .csv(s"${pathVolume}/${fileName}")
    
    # 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 enviar dados de vários formatos de arquivo compatíveis.

Passo 5: visualização dos dados do notebook

Neste passo, você usa o método display() para exibir o conteúdo do DataFrame em uma tabela do notebook e, em seguida, 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, em seguida, clique em Executar célula para exibir os dados em uma tabela.

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

  3. Perto da guia 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. Em Limite de frequências, clique em 35.

    gráfico de nuvem de palavras
  7. Clique em Salvar.

Passo 6: salvar o DataFrame em uma tabela

Importante

Para salvar seu DataFrame no Unity Catalog, o senhor deve ter privilégios de tabela CREATE no catálogo e no esquema. Para obter informações sobre permissões em Unity Catalog, consulte Privileges and securable objects em Unity Catalog e gerenciar privilégios em Unity Catalog.

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

    df = df.withColumnRenamed("First Name", "First_Name")
    df.printSchema
    
    val dfRenamedColumn = df.withColumnRenamed("First Name", "First_Name")
    // when modifying a DataFrame in Scala, you must assign it to a new variable
    dfRenamedColumn.printSchema()
    
    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 do Unity Catalog usando a variável do nome da tabela que você definiu no início deste artigo.

    df.write.mode("overwrite").saveAsTable(f"{path_table}" + "." + f"{table_name}")
    
    dfRenamedColumn.write.mode("overwrite").saveAsTable(s"${pathTable}.${tableName}")
    
    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 Catalog Explorer. Abra seu catálogo e, em seguida, seu esquema, para verificar se a tabela aparece.

  4. Clique em sua tabela para visualizar o esquema da tabela na guia Visão geral.

  5. Clique em Dados de Amostra para visualizar 100 linhas de dados da tabela.

Importar e visualizar notebooks de dados

Use um dos seguintes notebooks para executar os passos deste artigo.

Importe dados de CSV usando Python

Abrir notebook em uma nova guia

Importe dados de CSV usando Scala

Abrir notebook em uma nova guia

Importar dados de CSV usando o R

Abra o bloco de anotações em outra guia

Próximos passos