共用方式為


使用 Apache Spark 轉換資料,並使用 SQL 進行查詢

在本指南中,您將會:

  • 使用 OneLake 檔案總管將資料上傳至 OneLake。

  • 使用 Fabric 筆記本讀取 OneLake 上的資料,並以 Delta 資料表的形式回寫。

  • 使用 Fabric 筆記本,藉助 Spark 分析及轉換資料。

  • 使用 SQL 查詢 OneLake 上的唯一資料複本。

必要條件

開始進行之前,您必須:

  • 下載並安裝 OneLake 檔案總管

  • 使用 Lakehouse 項目建立工作區。

  • 下載 WideWorldImportersDW 資料集。 您可以使用 Azure 儲存體總管來連線至 https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city,並下載一組 csv 檔案。 或者,您可以使用自己的 csv 資料,並視需要更新詳細資料。

上傳數據

在本節中,您會使用 OneLake 檔案總管將測試數據上傳至 Lakehouse。

  1. 在 OneLake 檔案瀏覽器中,瀏覽至您的 lakehouse,並在 /Files 目錄下建立名為 dimension_city 的子目錄。

    OneLake 檔案總管中建立的新資料夾的螢幕擷取畫面。

  2. 使用 OneLake 檔案總管將範例 csv 檔案複製到 OneLake 目錄 /Files/dimension_city

    在檔案總管中將檔案複製到 OneLake 的螢幕擷取畫面。

  3. 導航至 Power BI 或 Fabric 服務中的 Lakehouse,並檢視您的檔案。

    在 Fabric 中檢視 Lakehouse 中的檔案的螢幕擷取畫面。

建立 Delta 數據表

在本節中,您會使用 Delta 格式,將 Unmanaged CSV 檔案轉換成受控數據表。

注意

請務必直接在 Lakehouse 的 [資料表] 區段下建立、載入或創建 Delta-Parquet 資料的捷徑。 請勿在 [數據表] 區段底下的子資料夾中巢狀您的數據表。 Lakehouse 無法將子資料夾識別為數據表,並將子資料夾標示為 不明

  1. 在 Lakehouse 中,選擇「開啟筆記本」,然後「新增筆記本」以建立新的筆記本。

    在 Fabric 中建立新筆記本的螢幕擷取畫面。

  2. 使用 Fabric 筆記本,將 CSV 檔案轉換成 Delta 格式。 下列程式碼片段會從使用者建立的目錄 /Files/dimension_city 讀取資料,並將其轉換成 Delta 資料表 dim_city

    將代碼段複製到筆記本數據格編輯器中。 將佔位符替換為您自己的工作區資訊,然後點選 運行資料格運行全部

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

    提示

    您可以用滑鼠右鍵按兩下目錄名稱,然後選取 [複製ABFS路徑],以擷取目錄的完整ABFS路徑。

  3. 若要查看新的資料表,請更新 /Tables 目錄的檢視。 選取 [數據表] 目錄旁的 [...] 其他選項,然後選取 [重新整理 ]。

    Fabric 中 Lakehouse 中的檢視資料表的螢幕擷取畫面。

查詢和修改數據

在本節中,您會使用 Fabric 筆記本與數據表中的數據互動。

  1. 在相同的 Fabric 筆記本中使用 SparkSQL 查詢您的資料表。

    %%sql
    SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;
    
  2. 新增名為 newColumn 且資料類型為整數的新資料行,進而修改 Delta 資料表。 將這個新增資料行的所有記錄的值設定為 9。

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

您也可以透過 SQL 分析端點,存取 OneLake 上的任何 Delta 資料表。 SQL 分析端點會參考 OneLake 上 Delta 資料表的相同實體複本,並提供 T-SQL 體驗。

  1. 導航到您的 Lakehouse,然後從下拉選單中選取 Lakehouse>SQL 分析端點

    顯示流覽至 SQL 分析端點的螢幕快照。

  2. 選取 [[新增 SQL 查詢],以使用 T-SQL 查詢數據表。

  3. 將下列程式碼複製並貼上到查詢編輯器中,然後選取 執行

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