Udostępnij przez


Przekształcanie danych za pomocą platformy Apache Spark i wykonywanie zapytań przy użyciu języka SQL

W tym przewodniku dowiesz się, jak:

  • Przekaż dane do usługi OneLake za pomocą Eksploratora plików OneLake.

  • Użyj notesu Fabric, aby odczytywać dane w usłudze OneLake i zapisywać z powrotem jako tabelę Delta.

  • Analizuj i przekształcaj dane za pomocą Spark, używając notesu Fabric.

  • Wykonaj zapytanie o jedną kopię danych w usłudze OneLake przy użyciu języka SQL.

Wymagania wstępne

Przed rozpoczęciem należy wykonać następujące czynności:

  • Pobierz i zainstaluj Eksploratora plików OneLake.

  • Utwórz obszar roboczy z elementem Lakehouse.

  • Pobierz zestaw danych WideWorldImportersDW. Możesz użyć Eksplorator usługi Azure Storage, aby nawiązać połączenie i pobrać https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city zestaw plików CSV. Możesz też użyć własnych danych csv i zaktualizować szczegóły zgodnie z potrzebami.

Przekazywanie danych

W tej sekcji przekażesz dane testowe do usługi Lakehouse przy użyciu Eksploratora plików OneLake.

  1. W Eksploratorze plików usługi OneLake przejdź do usługi Lakehouse i utwórz podkatalog o nazwie dimension_city w katalogu /Files.

    Zrzut ekranu przedstawiający nowy folder utworzony w Eksploratorze plików OneLake.

  2. Skopiuj przykładowe pliki CSV do katalogu /Files/dimension_city OneLake przy użyciu Eksploratora plików OneLake.

    Zrzut ekranu przedstawiający kopiowanie plików do usługi OneLake w Eksploratorze plików.

  3. Przejdź do swojego lakehouse w usłudze Power BI lub Fabric i wyświetl swoje pliki.

    Zrzut ekranu przedstawiający wyświetlanie plików w Lakehouse w usłudze Fabric.

Tworzenie tabeli delty

W tej sekcji przekonwertujesz niezarządzane pliki CSV na zarządzaną tabelę przy użyciu formatu delta.

Uwaga

Zawsze twórz, ładuj lub utwórz skrót do danych Delta-Parquet bezpośrednio w sekcji Tabele w lakehouse. Nie zagnieżdżaj swoich tabel w podfolderach pod sekcją Tables. Lakehouse nie rozpoznaje podfolderów jako tabel i oznacza je jako niezidentyfikowane.

  1. W usłudze Lakehouse wybierz pozycję Otwórz notes, a następnie Nowy notes, aby utworzyć notes.

    Zrzut ekranu przedstawiający tworzenie nowego notesu w Fabric.

  2. Za pomocą notatnika Fabric przekonwertuj pliki CSV na format Delta. Poniższy fragment kodu odczytuje dane z katalogu /Files/dimension_city utworzonego przez użytkownika i konwertuje je na tabelę dim_citydelty .

    Skopiuj fragment kodu do edytora komórki notatnika. Zamień elementy zastępcze na szczegóły swojego obszaru roboczego, i wybierz Uruchom komórkę lub Uruchom wszystkie.

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

    Napiwek

    Pełną ścieżkę ABFS można pobrać do katalogu, klikając prawym przyciskiem myszy nazwę katalogu i wybierając skopiuj ścieżkę ABFS.

  3. Aby wyświetlić nową tabelę, odśwież widok /Tables katalogu. Wybierz pozycję Więcej opcji (...) obok katalogu Tables, a następnie wybierz pozycję Odśwież.

    Zrzut ekranu przedstawiający tabelę wyświetlania w lakehouse w usłudze Fabric.

Wykonywanie zapytań i modyfikowanie danych

W tej sekcji użyjesz notesu usługi Fabric do interakcji z danymi w tabeli.

  1. Wykonaj zapytanie dotyczące tabeli za pomocą usługi SparkSQL w tym samym notesie usługi Fabric.

    %%sql
    SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    
  2. Zmodyfikuj tabelę Delta, dodając nową kolumnę o nazwie newColumn o typie danych integer. Ustaw wartość 9 dla wszystkich rekordów dla tej nowo dodanej kolumny.

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

Dostęp do dowolnej tabeli delty w usłudze OneLake można również uzyskać za pośrednictwem punktu końcowego analizy SQL. Punkt końcowy analizy SQL odwołuje się do tej samej fizycznej kopii tabeli delty w usłudze OneLake i oferuje środowisko języka T-SQL.

  1. Przejdź do usługi Lakehouse, a następnie wybierz pozycję Lakehouse>punkt końcowy analizy SQL z rozwijanego menu.

    Zrzut ekranu przedstawiający przechodzenie do punktu końcowego analizy SQL.

  2. Wybierz pozycję Nowe zapytanie SQL, aby wysłać zapytanie do tabeli przy użyciu języka T-SQL.

  3. Skopiuj i wklej następujący kod do edytora zapytań, a następnie wybierz pozycję Uruchom.

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