Partilhar via


Transforme dados com o Apache Spark e consulte com SQL

Neste guia, você irá:

  • Carregue dados para o OneLake com o explorador de arquivos do OneLake.

  • Use um notebook do Fabric para ler dados no OneLake e escrever de volta como uma tabela Delta.

  • Analise e transforme dados com o Spark usando um bloco de anotações Fabric.

  • Consulte uma cópia dos dados no OneLake com SQL.

Pré-requisitos

Antes de começar, deve:

  • Transfira e instale o explorador de ficheiros OneLake.

  • Crie um espaço de trabalho com um item Lakehouse.

  • Faça o download do conjunto de dados WideWorldImportersDW. Pode usar o Explorador de Armazenamento do Azure para se conectar a https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city e descarregar o conjunto de ficheiros csv. Ou você pode usar seus próprios dados csv e atualizar os detalhes conforme necessário.

Carregar dados

Nesta secção, são carregados dados de teste para o teu lakehouse utilizando o explorador de ficheiros OneLake.

  1. No explorador de arquivos do OneLake, navegue até sua casa do lago e crie um subdiretório chamado dimension_city sob o diretório /Files.

    Captura de ecrã da nova pasta criada no explorador de ficheiros OneLake.

  2. Copie seus arquivos csv de exemplo para o diretório OneLake usando o explorador /Files/dimension_city de arquivos OneLake.

    Captura de ecrã da cópia de ficheiros para o OneLake no explorador de ficheiros.

  3. Navegue até sua casa do lago no serviço Power BI ou Fabric e exiba seus arquivos.

    Captura de tela da visualização de arquivos no lakehouse in Fabric.

Criar uma tabela Delta

Nesta seção, você converte os arquivos CSV não gerenciados em uma tabela gerenciada usando o formato Delta.

Nota

Certifiquem-se de sempre criar, carregar, ou criar um atalho para dados do Delta-Parquet diretamente na secção Tabelas do lakehouse. Não aninhe as suas tabelas em subpastas sob a seção Tabelas. O lakehouse não reconhece subpastas como tabelas e rotula-as como Não Identificadas.

  1. Na casa do lago, selecione Abrir bloco de anotaçõese, em seguida, Novo bloco de anotações para criar um bloco de anotações.

    Captura de ecrã a mostrar a criação de um novo bloco de notas no Fabric.

  2. Usando o Fabric notebook, converta os arquivos CSV para o formato Delta. O trecho de código a seguir lê dados do diretório /Files/dimension_city criado pelo usuário e os converte em uma tabela dim_cityDelta.

    Copie o trecho de código para o editor de células do bloco de anotações. Substitua os espaços reservados pelos seus próprios detalhes do workspace e, depois, selecione Executar célula ou Executar tudo.

    import os
    from pyspark.sql.types import *
    for filename in os.listdir("/lakehouse/default/Files/dimension_city"):
        df=spark.read.format('csv').options(header="true",inferSchema="true").load("abfss://<YOUR_WORKSPACE_NAME>@onelake.dfs.fabric.microsoft.com/<YOUR_LAKEHOUSE_NAME>.Lakehouse/Files/dimension_city/"+filename,on_bad_lines="skip")
        df.write.mode("overwrite").format("delta").save("Tables/dim_city")
    

    Dica

    Você pode recuperar o caminho ABFS completo para seu diretório clicando com o botão direito do mouse no nome do diretório e selecionando Copiar caminho ABFS.

  3. Para ver a nova tabela, atualize a exibição do /Tables diretório. Selecione mais opções (...) ao lado do diretório Tabelas e, em seguida, selecione Atualizar.

    Captura de tela de uma mesa de visualização em uma casa de lago em Fabric.

Consultar e modificar dados

Nesta secção, usa um notebook do Fabric para interagir com os dados na sua tabela.

  1. Consulte a tabela com SparkSQL no mesmo notebook do Fabric.

    %%sql
    SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    
  2. Modifique a tabela Delta adicionando uma nova coluna chamada newColumn com número inteiro do tipo de dados. Defina o valor de 9 para todos os registros desta coluna recém-adicionada.

    %%sql
    
    ALTER TABLE <LAKEHOUSE_NAME>.dim_city ADD COLUMN newColumn int;
    
    UPDATE <LAKEHOUSE_NAME>.dim_city SET newColumn = 9;
    
    SELECT City,newColumn FROM <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    

Você também pode acessar qualquer tabela Delta no OneLake por meio de um ponto de extremidade de análise SQL. Um endereço de análise SQL refere-se à mesma cópia física da tabela Delta no OneLake e proporciona a experiência T-SQL.

  1. Navegue até o seu Lakehouse e selecione Lakehouse>ponto de extremidade de análises SQL no menu suspenso.

    Captura de ecrã que mostra a navegação até ao ponto final de análise SQL.

  2. Selecione Nova Consulta SQL para consultar a tabela usando T-SQL.

  3. Copie e cole o código a seguir no editor de consultas e selecione Executar.

    SELECT TOP (100) * FROM [<LAKEHOUSE_NAME>].[dbo].[dim_city];