使用 Apache Spark 開源 API 獲取 Spark 應用程序詳細信息

Fabric Spark History Server API 的結構、查詢參數和契約遵循與Spark 開源監控 REST API相同的格式,並提供相同的一套端點以檢索 Spark 應用程式的詳細資訊,包括基本的應用程式資訊、階段、作業、任務、執行者、儲存、串流等。

備註

/applications 端點會擷取所有應用程式的清單,而取得目前Spark版本的 /version 端點是這裡不支援的唯一端點。 不過,作為 /applications 端點的替代方案,您可以使用其他可用的監視 API,取得特定 Fabric 工作區的 Spark 應用程式清單或專案。

權限

呼叫者必須對該項目擁有「讀取」權限。

必要的委派範圍

Item.Read.All 或 Item.ReadWrite.All 或以下三組之一(根據觸發 Spark 應用程式的項目)

  • Notebook.Read.All 或 Notebook.ReadWrite.All
  • SparkJobDefinition.Read.All 或 SparkJobDefinition.ReadWrite.All
  • Lakehouse.Read.All 或 Lakehouse.ReadWrite.All

Microsoft Entra 支援的身份識別

此 API 支援本節中列出的Microsoft 身分識別

身份 支援
使用者 是的
服務主體受管理的身份 是的

介面

使用 attemptId:

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/{attemptId}/...

沒有「attemptId」

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/...

URI 參數

名稱 為必填項目 類型 說明
工作區ID 路徑 字串 UUID 工作區標識碼。
項目編號 路徑 字串 UUID 筆記本、Spark 工作定義或 Lakehouse 的項目 ID。
livyId 路徑 字串 UUID Livy 會話 ID。
應用程式ID 路徑 字串 Spark 應用程式識別碼,例如 application_1704417105000_0001。
attemptId 路徑 整數 (int) 該應用程式 ID 的嘗試 ID。 若未指定,則會使用最後嘗試的識別碼。

範例

範例要求 1:取得 Spark 應用程式中特定作業的詳細數據

GET https://api.fabric.microsoft.com/v1/workspaces/aaaabbbb-0000-cccc-1111-dddd2222eeee/notebooks/bbbbcccc-1111-dddd-2222-eeee3333ffff/livySessions/ccccdddd-2222-eeee-3333-ffff4444aaaa/applications/application_1742369571479_0001/jobs/1 

範例回應 1

狀態碼:200

{ 
    "jobId": 1, 
    "name": "save at <console>:38", 
    "description": "Accelerate the processing of subsequent queries", 
    "submissionTime": "2025-03-19T07:33:40.386GMT", 
    "completionTime": "2025-03-19T07:33:46.102GMT", 
    "stageIds": [ 
                    1, 
                    2 
                ], 
    "jobGroup": "SystemJob", 
    "jobTags": [], 
    "status": "SUCCEEDED", 
    "numTasks": 4, 
    "numActiveTasks": 0, 
    "numCompletedTasks": 1, 
    "numSkippedTasks": 3, 
    "numFailedTasks": 0, 
    "numKilledTasks": 0, 
    "numCompletedIndices": 1, 
    "numActiveStages": 0, 
    "numCompletedStages": 1, 
    "numSkippedStages": 1, 
    "numFailedStages": 0, 
    "killedTasksSummary": {} 
} 

範例要求 2:取得 Spark 應用程式中特定 SQL 查詢的詳細數據

GET  https://api.fabric.microsoft.com/v1/workspaces/aaaabbbb-0000-cccc-1111-dddd2222eeee/notebooks/bbbbcccc-1111-dddd-2222-eeee3333ffff/livySessions/ccccdddd-2222-eeee-3333-ffff4444aaaa/applications/application_1742369571479_0001/sql/1?details=false 

範例回應 2

狀態碼:200

{ 
    "id": 1, 
    "status": "COMPLETED", 
    "description": "Accelerate the processing of subsequent queries", 
    "planDescription": "== Physical Plan ==\nLocalTableScan (1)\n\n\n(1) LocalTableScan\nOutput [2]: [CommonName#7, ScientificName#8]\nArguments: [CommonName#7, ScientificName#8]\n\n", 
    "submissionTime": "2025-03-19T07:33:38.090GMT", 
    "duration": 8020, 
    "runningJobIds": [], 
    "successJobIds": [ 
                0, 
                1 
        ], 
    "failedJobIds": [], 
    "nodes": [], 
    "edges": [] 
} 

範例要求 3:取得 Spark 應用程式中特定嘗試的事件記錄檔

GET https://api.fabric.microsoft.com/v1/workspaces/ddddeeee-3333-ffff-4444-aaaa5555bbbb/notebooks/eeeeffff-4444-aaaa-5555-bbbb6666cccc/livySessions/ffffaaaa-5555-bbbb-6666-cccc7777dddd/applications/application_1741176604085_0001/1/logs  

範例回應 3

因為無法讀取的代碼,所以沒有顯示。