Pular para o conteúdo principal

Começar: Aprimorar e limpar dados

Este artigo o orienta no uso do Databricks Notebook para limpar e aprimorar os dados de nomes de bebês do Estado de Nova York que foram previamente carregados em uma tabela no Unity Catalog usando Python, Scala e R. Neste artigo, você altera os nomes das colunas, muda a capitalização e escreve o sexo de cada nome de bebê da tabela de dados brutos e, em seguida, salva o DataFrame em uma tabela prata. Em seguida, você filtra os dados para incluir apenas dados de 2021, agrupa os dados no nível estadual e, em seguida, classifica os dados por contagem. Por fim, o senhor salva esse DataFrame em uma tabela de ouro e visualiza os dados em um gráfico de barras. Para obter mais informações sobre mesas de prata e ouro, consulte arquitetura de medalhão.

important

Este artigo do Get Começar baseia-se no Get Começar: Ingerir e inserir dados adicionais. O senhor deve concluir as etapas desse artigo para concluir este artigo. Para obter o Notebook completo para começar artigos, consulte Ingest additional data Notebook.

Requisitos

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

  • O site workspace deve ter Unity Catalog habilitado. Para obter informações sobre como começar com Unity Catalog, consulte Configurar e gerenciar Unity Catalog.
  • 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 principal.
  • O senhor deve ter permissão para usar um recurso existente no site compute ou criar um novo recurso no site compute. Consulte Começar com Databricks ou consulte o administrador do site Databricks.
dica

Para obter um Notebook completo para este artigo, consulte Cleanse and enhance data Notebook.

Etapa 1: Criar 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 o Notebook, consulte gerenciar o Notebook.

Etapa 2: Definir variáveis

Nesta etapa, o senhor define as variáveis a serem usadas no Notebook de exemplo que criou neste artigo.

  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 de catálogo, esquema e volume de um volume do Unity Catalog. Opcionalmente, substitua o valor 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.

Python
catalog = "<catalog_name>"
schema = "<schema_name>"
table_name = "baby_names"
silver_table_name = "baby_names_prepared"
gold_table_name = "top_baby_names_2021"
path_table = catalog + "." + schema
print(path_table) # Show the complete path

Etapa 3: Carregar os dados brutos em um novo DataFrame

Essa etapa carrega os dados brutos salvos anteriormente em uma tabela Delta em um novo DataFrame, em preparação para a limpeza e o aprimoramento desses dados para análise posterior.

  1. Copie e cole o código a seguir na nova célula vazia do notebook.
Python
df_raw = spark.read.table(f"{path_table}.{table_name}")
display(df_raw)
  1. Pressione Shift+Enter para executar a célula e depois passar para a próxima célula.

Etapa 4: Limpar e aprimorar os dados brutos e salvá-los

Nesta etapa, o senhor altera o nome da coluna Year, altera os dados da coluna First_Name para letras maiúsculas iniciais e atualiza os valores da coluna Sex para soletrar o sexo e, em seguida, salva o DataFrame em uma nova tabela.

  1. Copie e cole o código a seguir em uma célula vazia do notebook.
Python
from pyspark.sql.functions import col, initcap, when

# Rename "Year" column to "Year_Of_Birth"
df_rename_year = df_raw.withColumnRenamed("Year", "Year_Of_Birth")

# Change the case of "First_Name" column to initcap
df_init_caps = df_rename_year.withColumn("First_Name", initcap(col("First_Name").cast("string")))

# Update column values from "M" to "male" and "F" to "female"
df_baby_names_sex = df_init_caps.withColumn(
"Sex",
when(col("Sex") == "M", "Male")
.when(col("Sex") == "F", "Female")
)

# display
display(df_baby_names_sex)

# Save DataFrame to table
df_baby_names_sex.write.mode("overwrite").saveAsTable(f"{path_table}.{silver_table_name}")
  1. Pressione Shift+Enter para executar a célula e depois passar para a próxima célula.

Etapa 5: agrupar e visualizar dados

Nesta etapa, você filtra os dados somente para o ano de 2021, agrupa os dados por sexo e nome, agrega por contagem e ordena por contagem. Em seguida, o senhor salva o DataFrame em uma tabela e visualiza os dados em um gráfico de barras.

  1. Copie e cole o código a seguir em uma célula vazia do notebook.
Python
from pyspark.sql.functions import expr, sum, desc
from pyspark.sql import Window

# Count of names for entire state of New York by sex
df_baby_names_2021_grouped=(df_baby_names_sex
.filter(expr("Year_Of_Birth == 2021"))
.groupBy("Sex", "First_Name")
.agg(sum("Count").alias("Total_Count"))
.sort(desc("Total_Count")))

# Display data
display(df_baby_names_2021_grouped)

# Save DataFrame to a table
df_baby_names_2021_grouped.write.mode("overwrite").saveAsTable(f"{path_table}.{gold_table_name}")
  1. Pressione Ctrl+Enter para executar a célula.

    1. Perto da guia Tabela , clique em + e, em seguida, clique em Visualização .
  2. No editor de visualização, clique em Tipo de visualização e verifique se Barra está selecionada .

  3. Na coluna X , selecioneFirst_Name.

  4. Clique em Adicionar coluna em Colunas Y e selecione Total_Count .

  5. Em Agrupar por , selecione Sexo .

    mesa de ouro

  6. Clique em Salvar .

Limpar e aprimorar o Notebook de dados

Use um dos seguintes Notebooks para executar as etapas deste artigo. Substitua <catalog-name>, <schema-name> e <volume-name> pelos nomes de catálogo, esquema e volume de um volume do Unity Catalog. Opcionalmente, substitua o valor table_name por um nome de tabela de sua escolha.

Cleanse and enhance data using Python

Open notebook in new tab

Recurso adicional