Delen via


Gegevens transformeren met Apache Spark en query's uitvoeren met SQL

In deze handleiding gaat u het volgende doen:

  • Gegevens uploaden naar OneLake met de Verkenner van OneLake.

  • Gebruik een Fabric-notebook om gegevens in OneLake te lezen en terug te schrijven als een Delta-tabel.

  • Gegevens analyseren en transformeren met Spark met behulp van een Fabric-notebook.

  • Voer een query uit op één exemplaar van gegevens in OneLake met SQL.

Vereisten

Voordat u begint, moet u het volgende doen:

  • Download en installeer OneLake-bestandsverkenner.

  • Maak een werkruimte met een Lakehouse-item.

  • Download het WideWorldImportersDW-dataset. U kunt Azure Storage Explorer gebruiken om verbinding te maken met https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city de set CSV-bestanden en deze te downloaden. U kunt ook uw eigen CSV-gegevens gebruiken en de details indien nodig bijwerken.

Gegevens uploaden

In dit gedeelte uploadt u testgegevens naar uw Lakehouse met behulp van OneLake-verkenner.

  1. Navigeer in het OneLake-bestandsbeheer naar uw lakehouse en maak een submap met de naam dimension_city in de map /Files.

    Schermopname van de nieuwe map die is gemaakt in OneLake-bestandsverkenner.

  2. Kopieer uw csv-voorbeeldbestanden naar de OneLake-map /Files/dimension_city met behulp van OneLake-verkenner.

    Schermopname van het kopiëren van bestanden naar OneLake in verkenner.

  3. Navigeer naar uw lakehouse in de Power BI- of Fabric-service en bekijk uw bestanden.

    Schermopname van het weergeven van bestanden in Lakehouse in Fabric.

Een Delta-tabel maken

In deze sectie converteert u de niet-beheerde CSV-bestanden naar een beheerde tabel met behulp van de Delta-indeling.

Notitie

Maak, laad of installeer altijd een snelkoppeling naar Delta-Parquet-gegevens rechtstreeks onder het gedeelte Tabellen van het lakehouse. Nest de tabellen niet in submappen onder de sectie Tabellen. De lakehouse herkent geen submappen als tabellen en merkt ze aan als Niet-geïdentificeerde.

  1. Selecteer in uw lakehouse eerst Notitieblok openen, en vervolgens Nieuw notitieblok om een notitieblok te maken.

    Schermopname van het maken van een nieuw notebook in Fabric.

  2. Converteer de CSV-bestanden met behulp van het Fabric-notebook naar de Delta-indeling. Met het volgende codefragment worden gegevens uit de door de gebruiker gemaakte map /Files/dimension_city gelezen en geconverteerd naar een Delta-tabel dim_city.

    Kopieer het codefragment naar de celeditor van het notitieblok. Vervang de tijdelijke aanduidingen door uw eigen werkruimtegegevens en selecteer vervolgens Uitvoeren van cel of Alles uitvoeren.

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

    Tip

    U kunt het volledige ABFS-pad naar uw map ophalen door met de rechtermuisknop op de mapnaam te klikken en ABFS-pad kopiërente selecteren.

  3. Als u de nieuwe tabel wilt zien, vernieuwt u de weergave van de /Tables map. Selecteer meer opties (...) naast de map Tabellen en selecteer vervolgens Vernieuwen.

    Schermopname van een weergavetabel in een lakehouse in Fabric.

Gegevens opvragen en wijzigen

In deze sectie gebruikt u een Fabric-notebook om te communiceren met de gegevens in uw tabel.

  1. Voer een query uit op uw tabel met SparkSQL in hetzelfde Fabric-notebook.

    %%sql
    SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    
  2. Wijzig de Delta-tabel door een nieuwe kolom met de naam newColumn toe te voegen met een geheel getal van het gegevenstype. Stel de waarde van 9 in voor alle records voor deze zojuist toegevoegde kolom.

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

U kunt ook elke Delta-tabel in OneLake openen via een SQL-analyse-eindpunt. Een SQL-analyse-eindpunt verwijst naar dezelfde fysieke kopie van de Delta-tabel in OneLake en biedt de T-SQL-ervaring.

  1. Navigeer naar uw Lakehouse en selecteer vervolgens Lakehouse>SQL Analytics-eindpunt in de vervolgkeuzelijst.

    Schermopname van het navigeren naar het SQL Analytics-eindpunt.

  2. Selecteer nieuwe SQL-query om een query uit te voeren op de tabel met behulp van T-SQL.

  3. Kopieer en plak de volgende code in de query-editor, en selecteer vervolgens Uitvoeren.

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