無伺服器計算限制
本文將說明筆記本和作業的無伺服器計算目前限制。 它會從最重要的考慮概觀開始,然後提供完整的限制參考清單。
限制概觀
在建立新的工作負載或將工作負載移轉至無伺服器計算之前,請先考慮下列限制:
- 僅支援 Python 和 SQL 語言。
- 僅支援 Spark 連線 API。 不支援 Spark RDD API。
- 不支援 JAR 程式庫。 如需因應措施,請參閱無伺服器計算的最佳做法 (機器翻譯)。
- 所有工作區使用者可以不受限制的存取無伺服器計算。
- 不支援筆記本標籤。
- 只能針對串流使用累加批次邏輯。 不支援預設或以時間為基礎的觸發程序間隔。 請參閱串流限制。
限制參考清單
下列各節會列出無伺服器計算的目前限制。
無伺服器計算是以共用計算結構為基礎。 繼承自共用計算的最相關限制,以及額外的無伺服器特定限制將列於下方。 如需共用計算限制的完整清單,請參閱 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 (External) 命令。 Databricks 建議使用 CREATE FUNCTION (SQL 和 Python) 來建立 UDF。
個別資料列不能超過 128MB 的大小上限。
目前無法使用 Spark UI。 請改用查詢設定檔來檢視 Spark 查詢的相關資訊。 請參閱查詢設定檔 (機器翻譯)。
只有在工作區位於相同區域,且目的地工作區未設定IP ACL或前端 PrivateLink 時,才允許跨工作區存取。
不支援全域暫存檢視。 Databricks 建議使用 會話暫存檢視 ,或建立需要跨會話數據傳遞的數據表。
串流限制
- 不支援預設或以時間為基礎的觸發程序間隔。 只支援
Trigger.AvailableNow
。 請參閱設定結構化串流觸發程序間隔 (機器翻譯)。 - 也適用以共用存取模式進行串流的所有限制。 請參閱 Unity 目錄共用存取模式的串流限制和需求。
機器學習限制
- 不支援適用於機器學習的 Databricks Runtime 和 Apache Spark MLlib。
- 不支援 GPU。
筆記本限制
- 筆記本可以存取 8GB 記憶體,但無法設定該記憶體。
- 系統不會跨開發工作階段快取筆記本範圍的程式庫。
- 不支援在使用者之間共用筆記本時共用暫存資料表和檢視。
- 不支援筆記本中資料框架的自動完成和變數總管。
工作流程限制
- 作業的無伺服器計算驅動程式大小目前為固定,且無法變更。
- 系統不會針對每個工作執行隔離工作記錄。 記錄會包含多個工作的輸出。
- 筆記本工作不支援工作程式庫。 請改用筆記本範圍的程式庫。 請參閱筆記本範圍的 Python 程式庫。
計算特定限制
不支援下列計算特定功能:
- 計算原則
- 計算範圍的 init 指令碼
- 計算範圍的程式庫,包括自訂資料來源和 Spark 延伸項目。 請改用筆記本範圍的程式庫。
- 計算層級的資料存取組態,包括執行個體設定檔。 因此,您將無法透過雲端路徑上的 HMS 或沒有內嵌認證的 DBFS 裝載存取資料表和檔案。
- 執行個體集區
- 計算事件記錄
- 大部分的 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 數據表
- 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子句 來參數化物件名稱。