無伺服器計算限制
本文將說明筆記本和作業的無伺服器計算能力的目前限制。 它會從最重要的考慮概觀開始,然後提供完整的限制參考清單。
限制概觀
在建立新的工作負載或將工作負載移轉至無伺服器計算之前,請先考慮下列限制:
- 僅支援 Python 和 SQL 語言。
- 僅支援 Spark 連線 API。 不支援 Spark RDD API。
- 不支援 JAR 程式庫。 如需因應措施,請參閱無伺服器計算的最佳做法 (機器翻譯)。
- 無伺服器計算適用於所有工作區使用者。
- 不支援筆記本標籤。 使用 預算原則 來標記無伺服器使用量。
- 只能針對串流使用累加批次邏輯。 不支援預設或以時間為基礎的觸發程序間隔。 請參閱串流限制。
限制參考清單
下列各節列出無伺服器計算的目前限制。
無伺服器計算是以 Databricks 標準存取模式計算架構為基礎(先前稱為共用存取模式)。 繼承自標準存取模式的最相關限制如下,以及額外的無伺服器特定限制。 如需標準存取模式限制的完整清單,請參閱 Unity 目錄的計算存取模式限制。
一般限制
- 不支援 Scala 和 R。
- 寫入 SQL 時預設會使用 ANSI SQL。 將
spark.sql.ansi.enabled
設定為false
,即可選擇退出 ANSI 模式。 - 不支援 Spark RDD API。
- 不支援 Spark Context (sc)、
spark.sparkContext
和sqlContext
。
- 不支援 Databricks 容器服務。
- 不支援網路終端機。
- 查詢無法執行超過 48 小時。
- 您必須使用 Unity 目錄來連線到外部資料來源。 使用外部位置來存取雲端儲存體。
- 資料來源的支援僅限於 AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、ORC、TEXT 和 XML。
- 使用者定義函式 (UDF) 無法存取網際網路。 因此,不支援 CREATE FUNCTION(外部) 命令。 Databricks 建議使用 CREATE FUNCTION (SQL 和 Python) 來建立 UDF。
- 個別資料列不能超過 128MB 的大小上限。
- 目前無法使用 Spark UI。 請改用查詢設定檔來檢視 Spark 查詢的相關資訊。 參閱查詢設定檔
- 使用無伺服器筆記本和作業時,無法取得 Spark 日誌。 使用者只能存取用戶端應用程式記錄。
- 只有在工作區位於相同區域,且目的地工作區未設定IP ACL或前端 PrivateLink 時,才允許跨工作區存取。
- 不支援全域暫存視圖。 Databricks 建議使用 會話暫存視圖 或在需要跨會話數據傳遞時建立數據表。
串流限制
- 不支援預設或以時間為基礎的觸發程序間隔。 只支援
Trigger.AvailableNow
。 請參閱設定結構化串流觸發間隔時間。 - 標準存取模式上串流的所有限制也適用。 請參閱 Unity 目錄標準存取模式的串流限制和需求。
機器學習限制
- 不支援適用於機器學習的 Databricks Runtime 和 Apache Spark MLlib。
- 不支援 GPU。
筆記本限制
- 筆記本可以存取 8GB 記憶體,但無法設定該記憶體。
- 在不同的開發工作階段中,筆記本範圍的程式庫不會被快取。
- 在用戶間共用記事本時,不支援 TEMP 資料表和檢視的共享功能。
- 不支援在筆記本中對 DataFrame 的自動填寫和變數總管功能。
工作流程限制
- 作業的無伺服器計算驅動程式大小目前為固定,且無法變更。
- 任務日誌不會針對每次任務執行進行隔離。 記錄會包含多個工作的輸出。
- 筆記本任務不支援任務程式庫。 請改用限於筆記本的程式庫。 請參閱限於筆記本的 Python 程式庫。
計算相關的特定限制
不支援下列計算特定功能:
- 計算原則
- 計算範圍的初始化腳本
- 計算作用域的函式庫,包括自訂資料來源和 Spark 擴充功能。 請改用筆記本範圍的程式庫。
- 執行個體集區
- 計算事件記錄
- 大部分的 Apache Spark 運算配置。 如需支援的組態清單,請參閱 支援的Spark組態參數。
- 環境變數。 相較於此,Databricks 建議使用 小工具 來建立 作業和工作參數。
快取限制
無伺服器計算不支持數據框架和 SQL 快取 API。 使用上述任何 API 或 SQL 命令將會導致例外狀況。
- df.cache(), df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
- CACHE TABLE
- UNCACHE TABLE
- REFRESH TABLE
- CLEAR CACHE
Hive的限制
不支援 Hive SerDe 資料表。 此外,不支援將數據載入 Hive SerDe 資料表的對應 LOAD DATA 命令。 使用 命令會導致例外狀況。
資料來源的支援僅限於 AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、ORC、TEXT 和 XML。
不支援 Hive 變數(例如
${env:var}
、${configName}
、${system:var}
和spark.sql.variable
)或透過${var}
語法使用的組態變數參考。 使用Hive變數會導致例外狀況。請改用 DECLARE VARIABLE、SET VARIABLE和 SQL 會話變數參考 和參數標記 ('?' 或 ':var') 來宣告、修改和參考會話狀態。 您也可以使用 IDENTIFIER 子句,在許多情況下將物件名稱參數化。