共用方式為


分析儲存體帳戶中的資料

在此教學課程中,您將了解如何分析位於儲存體帳戶中的資料。

概觀

目前為止,我們已介紹資料位於工作區中資料庫的案例。 現在,我們將示範如何使用儲存體帳戶中的檔案。 在此案例中,我們將使用工作區的主要儲存體帳戶,以及我們在建立工作區時所指定的容器。

  • 儲存體帳戶的名稱:contosolake
  • 儲存體帳戶中容器的名稱:users

在您的儲存體帳戶中建立 CSV 和 Parquet 檔案

在新的程式碼資料格中,執行下列筆記本程式碼。 其會在儲存體帳戶中建立 CSV 檔案和 Parquet 檔案。

提示

此資料表已在快速入門中稍早建立,您可以在這裡找到步驟。

%%pyspark
df = spark.sql("SELECT * FROM nyctaxi.passengercountstats")
df = df.repartition(1) # This ensures we'll get a single file during write()
df.write.mode("overwrite").csv("/NYCTaxi/PassengerCountStats_csvformat")
df.write.mode("overwrite").parquet("/NYCTaxi/PassengerCountStats_parquetformat")

分析儲存體帳戶中的資料

您可以分析工作區預設 Azure Data Lake Storage (ADLS) Gen2 帳戶中的資料,也可以透過 [管理] > [連結的服務] > [新增],將 ADLS Gen2 或 Blob 儲存體帳戶連結至工作區 (後續步驟會參考主要 ADLS Gen2 帳戶)。

  1. 在 Synapse Studio 中,移至 [資料] 中樞,然後選取 [連結的項目]

  2. 移至 [Azure Data Lake Storage Gen2]>[myworkspace (Primary - contosolake)]

  3. 選取 [使用者 (主要)]。 您應該會看到 [NYCTaxi] 資料夾。 在其中,您應該會看到兩個名為 PassengerCountStats_csvformatPassengerCountStats_parquetformat 的資料夾。

  4. 開啟 PassengerCountStats_parquetformat 資料夾。 裡面有一個 parquet 檔案,其名稱類似 part-00000-2638e00c-0790-496b-a523-578da9a15019-c000.snappy.parquet

  5. 以滑鼠右鍵按一下 .parquet,然後依序選取 [新增筆記本] 和 [載入 DataFrame 中]。 使用如下的儲存格建立新的筆記本:

    %%pyspark
    abspath = 'abfss://users@contosolake.dfs.core.windows.net/NYCTaxi/PassengerCountStats_parquetformat/part-00000-1f251a58-d8ac-4972-9215-8d528d490690-c000.snappy.parquet'
    df = spark.read.load(abspath, format='parquet')
    display(df.limit(10))
    
  6. 附加至名為 Spark1的 Spark 集區。 執行資料格。 如果您遇到與缺少核心相關的錯誤,則另一個工作階段可能正在使用此 Spark 集區。 取消所有現有的工作階段,然後重試。

  7. 返回 users 資料夾。 以滑鼠右鍵再按一下 .parquet 檔案,然後選取 [New SQL script] \(新增 SQL 指令碼\) > SELECT TOP 100 rows。 其會建立如下所示的 SQL 指令碼:

    SELECT 
        TOP 100 *
    FROM OPENROWSET(
        BULK 'https://contosolake.dfs.core.windows.net/users/NYCTaxi/PassengerCountStats_parquetformat/part-00000-1f251a58-d8ac-4972-9215-8d528d490690-c000.snappy.parquet',
        FORMAT='PARQUET'
    ) AS [result]
    

    在指令碼視窗中,請務必將 [連線至] 欄位設定為 [內建] 無伺服器 SQL 集區。

  8. 執行指令碼。

下一步