无服务器计算限制

本文介绍了笔记本和作业的无服务器计算的当前限制。 它首先概述了最重要的注意事项,然后提供一个全面的限制参考列表。

限制概述

在新建工作负荷或将工作负荷迁移到无服务器计算之前,请先考虑以下限制:

  • 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 上下文 (sc)、spark.sparkContextsqlContext
  • 默认情况下,无服务器笔记本中的 Spark 查询不能运行超过 9000 秒。 可以使用此属性进行 spark.databricks.execution.timeout 配置。 有关详细信息,请参阅 为无服务器笔记本和作业配置 Spark 属性。 此限制不适用于无服务器作业。
  • 必须使用 Unity Catalog 连接到外部数据源。 使用外部位置访问云存储。
  • 对数据源的支持仅限于 AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、ORC、TEXT 和 XML。
  • 用户定义的函数 (UDF) 无法访问 Internet。 因此,不支持 CREATE FUNCTION(外部)命令。 Databricks 建议使用 CREATE FUNCTION(SQL 和 Python)来创建 UDF。
  • 单个行的最大大小不得超过 128MB。
  • Spark UI 不可用。 请改用查询配置文件来查看有关 Spark 查询的信息。 请参阅查询配置文件
  • 使用无服务器笔记本和作业时,Spark 日志不可用。 用户只能访问客户端应用程序日志。
  • 仅当工作区位于同一区域且目标工作区未配置 IP ACL 或前端 PrivateLink 时,才允许跨工作区访问。
  • 不支持全局临时视图。 Databricks 建议使用 会话临时视图 或创建需要跨会话数据传递的表。

流式处理限制

机器学习限制

笔记本限制

  • 笔记本范围的库不会跨开发会话进行缓存。
  • 在用户之间共享笔记本时,不支持共享 TEMP 表和视图。
  • 不支持对笔记本中的数据帧使用自动完成和变量资源管理器

工作流限制

  • 作业无服务器计算的驱动程序大小当前是固定的,无法更改。
  • 不会为每个任务运行隔离任务日志。 日志将包含多个任务的输出。
  • 笔记本任务不支持任务库。 请改用笔记本范围的库。 请参阅作用域为笔记本的 Python 库

特定于计算的限制

不支持以下特定于计算的功能:

缓存限制

无服务器计算不支持数据帧和 SQL 缓存 API。 使用其中的任何 API 或 SQL 命令都会导致异常。

Hive 限制

  • 不支持 Hive SerDe 表。 此外,不支持用于将数据加载到 Hive SerDe 表中的相应 LOAD DATA 命令。 使用该命令会导致异常。

    对数据源的支持仅限于 AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、ORC、TEXT 和 XML。

  • 不支持使用 语法的 ${env:var}(例如 ${configName}${system:var}spark.sql.variable${var})或配置变量引用。 使用 Hive 变量会导致异常。

    请改用 DECLARE VARIABLESET VARIABLESQL 会话变量引用 以及参数标记(“?”或“:var”)来声明、修改和引用会话状态。 在许多情况下,可以使用 IDENTIFIER 子句 来参数化对象名称。