Este artigo de introdução orienta você pelo uso de um notebook do Azure Databricks para ingerir um arquivo CSV contendo dados adicionais de nome de bebê em seu volume do Catálogo do Unity e importar os novos dados de nome de bebê para uma tabela existente usando Python, Scala e R.
O usuário também 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.
Você deve ter permissão para usar um recurso de computação existente ou criar um recurso de computação. Veja Introdução ao Azure Databricks ou consulte o administrador do Databricks.
Para criar um bloco de notas na sua área de trabalho, clique em Novo 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.
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.
Pressione Shift+Enter para executar a célula e criar uma nova célula em branco.
Etapa 3: adicionar novo arquivo CSV de dados ao volume do Catálogo do Unity
Esta etapa cria um DataFrame chamado df com um novo nome de bebê para 2022 e salva esses dados em um novo arquivo CSV no volume do Catálogo do Unity.
Observação
Esta etapa simula a adição de novos dados anuais aos dados existentes carregados para anos anteriores. Em seu ambiente de produção, esses dados incrementais seriam armazenados no armazenamento em nuvem.
Copie e cole o código a seguir na nova célula vazia do notebook. Esse código cria o DataFrame com dados de nome de bebê adicionais e grava esses dados em um arquivo CSV no volume do Catálogo do Unity.
Python
Python
data = [[2022, "CARL", "Albany", "M", 42]]
df = spark.createDataFrame(data, schema="Year int, First_Name STRING, County STRING, Sex STRING, Count int")
# display(df)
(df.coalesce(1)
.write
.option("header", "true")
.mode("overwrite")
.csv(f"{path_volume}/{file_name}"))
Scala
Scala
val data = Seq((2022, "CARL", "Albany", "M", 42))
val columns = Seq("Year", "First_Name", "County", "Sex", "Count")
val df = data.toDF(columns: _*)
// display(df)
df.coalesce(1)
.write
.option("header", "true")
.mode("overwrite")
.csv(f"{pathVolume}/{fileName}")
R
R
# Load the SparkR package that is already preinstalled on the cluster.library(SparkR)
data <- data.frame(Year = 2022,
First_Name = "CARL",
County = "Albany",
Sex = "M",
Count = 42)
df <- createDataFrame(data)
# display(df)
write.df(df, path = paste0(path_volume, "/", file_name),
source = "csv",
mode = "overwrite",
header = "true")
Pressione Shift+Enter para executar a célula e depois vá para a próxima célula.
Etapa 4: carregar dados em um DataFrame de um arquivo CSV
Observação
Esta etapa simula o carregamento de dados do armazenamento em nuvem.
Copie e cole o código a seguir em uma célula vazia do notebook. Esse código carrega dados de novos nomes de bebê em um novo DataFrame do arquivo CSV.
Pressione Shift+Enter para executar a célula e depois vá para a próxima célula.
Etapa 5: inserir na tabela existente
Copie e cole o código a seguir em uma célula vazia do notebook. Esse código acrescenta os novos dados de nomes de bebê do DataFrame à tabela existente.
Python
Python
df.write.mode("append").insertInto(f"{path_table}.{table_name}")
display(spark.sql(f"SELECT * FROM {path_table}.{table_name} WHERE Year = 2022"))
Scala
Scala
df1.write.mode("append").insertInto(s"${pathTable}.${tableName}")
display(spark.sql(s"SELECT * FROM ${pathTable}.${tableName} WHERE Year = 2022"))
R
R
# The write.df function in R, as provided by the SparkR package, does not directly support writing to Unity Catalog.# In this example, you write the DataFrame into a temporary view and then use the SQL command to insert data from the temporary view to the Unity Catalog table
createOrReplaceTempView(df1, "temp_view")
sql(paste0("INSERT INTO ", path_table, ".", table_name, " SELECT * FROM temp_view"))
display(sql(paste0("SELECT * FROM ", path_table, ".", table_name, " WHERE Year = 2022")))
Pressione Ctrl+Enter para executar a célula.
Ingerir notebooks de dados adicionais
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.
Gerenciar a ingestão e a preparação de dados, o treinamento e a implantação de modelos e o monitoramento da solução de machine learning com Python, Azure Machine Learning e MLflow.