Condividi tramite


Trasformare i dati con Apache Spark ed eseguire query con SQL

Questa guida illustra le procedure per:

  • Caricare i dati in OneLake con Esplora file di OneLake.

  • Usare un notebook di Fabric per leggere i dati su OneLake e riscriverli come tabella Delta.

  • Analizzare e trasformare i dati con Spark usando un notebook di Fabric.

  • Eseguire una query su una copia dei dati in OneLake con SQL.

Prerequisiti

Prima di iniziare, è necessario eseguire queste operazioni:

  • Scaricare e installare Esplora file di OneLake.

  • Creare un'area di lavoro con un elemento Lakehouse.

  • Scaricare il set di dati WideWorldImportersDW. È possibile usare Azure Storage Explorer per connettersi a https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city e scaricare il set di file CSV. In alternativa, è possibile usare i propri dati csv e aggiornare i dettagli in base alle esigenze.

Nota

Caricare o creare sempre un collegamento ai dati Delta-Parquet direttamente nella sezione Tabelle del lakehouse. Non annidare le tabelle in sottocartelle nella sezione Tabelle perché il lakehouse non le riconoscerà come tabella e le etichetterà come Non identificate.

Caricare, leggere, analizzare ed eseguire query sui dati

  1. In Esplora file di OneLake passare al lakehouse e nella directory /Files creare una sottodirectory denominata dimension_city.

    Screenshot della nuova cartella creata in Esplora file di OneLake.

  2. Copiare i file CSV di esempio nella directory /Files/dimension_city di OneLake usando Esplora file di OneLake File.

    Screenshot della copia di file in Esplora file di OneLake.

  3. Passare al lakehouse nel servizio Power BI e visualizzare i file.

    Screenshot della visualizzazione di file in lakehouse in Fabric.

  4. Selezionare Apri notebook, quindi Nuovo notebook per creare un notebook.

    Screenshot della creazione di un nuovo notebook in Fabric.

  5. Usando il notebook di Fabric, convertire i file CSV in formato Delta. Il frammento di codice seguente legge i dati dalla directory /Files/dimension_city creata dall'utente e li converte in una tabella Delta dim_city.

    import os
    from pyspark.sql.types import *
    for filename in os.listdir("/lakehouse/default/Files/<replace with your folder path>"):
    df=spark.read.format('csv').options(header="true",inferSchema="true").load("abfss://<replace with workspace name>@onelake.dfs.fabric.microsoft.com/<replace with item name>.Lakehouse/Files/<folder name>/"+filename,on_bad_lines="skip")
    df.write.mode("overwrite").format("delta").save("Tables/<name of delta table>")
    
  6. Per visualizzare la nuova tabella, aggiornare la visualizzazione della directory /Tables.

    Screenshot della visualizzazione di una tabella in un lakehouse in Fabric.

  7. Eseguire query sulla tabella con SparkSQL nello stesso notebook di Fabric.

    %%sql
    SELECT * from <replace with item name>.dim_city LIMIT 10;
    
  8. Modificare la tabella Delta aggiungendo una nuova colonna denominata newColumn con tipo di dati intero. Impostare il valore 9 per tutti i record di questa colonna appena aggiunta.

    %%sql
    
    ALTER TABLE <replace with item name>.dim_city ADD COLUMN newColumn int;
    
    UPDATE <replace with item name>.dim_city SET newColumn = 9;
    
    SELECT City,newColumn FROM <replace with item name>.dim_city LIMIT 10;
    
  9. È inoltre possibile accedere a qualsiasi tabella Delta in OneLake tramite un endpoint di analisi SQL. Un endpoint di analisi SQL fa riferimento alla stessa copia fisica della tabella Delta in OneLake e offre l'esperienza T-SQL. Selezionare l'endpoint di analisi SQL per lakehouse1 e quindi selezionare Nuova query SQL per eseguire query sulla tabella usando T-SQL.

    SELECT TOP (100) * FROM [<replace with item name>].[dbo].[dim_city];