Compartir a través de

标准计算要求和限制

本页包含标准计算的要求和限制列表。 如果使用经典计算,Databricks 建议使用标准访问模式,除非工作负荷依赖于下面列出的限制之一。

重要

Init 脚本和库对各访问模式和 Databricks Runtime 版本提供不同的支持。 请参阅 初始化脚本可以安装在哪里?计算范围库

当前的标准计算限制

以下部分列出了基于最新 Databricks Runtime 版本的标准计算的限制。 有关适用于较旧 Databricks Runtime 版本的限制,请参阅 与运行时相关的限制

如果工作负荷需要这些功能,请改用 专用计算

常规标准计算限制

  • 不支持用于 ML 的 Databricks Runtime。 而是安装任何未将 Databricks Runtime 捆绑为计算范围的库的 ML 库。
  • 不支持启用 GPU 的计算。
  • 不支持 Spark-submit 作业任务。 请改用 JAR 任务
  • DBUtils 和其他客户端只能使用 外部位置从云存储中读取数据。
  • 不支持自定义容器。
  • DBFS 根目录和挂载点不支持 FUSE。

语言限制

  • 不支持 R。

Spark API 限制

  • Spark 上下文(sc),spark.sparkContextsqlContext且不支持 Scala:

    • Azure Databricks 建议使用 spark 变量与 SparkSession 实例交互。
    • 也不支持以下 sc 函数:emptyRDDrangeinit_batched_serializerparallelizepickleFiletextFilewholeTextFilesbinaryFilesbinaryRecordssequenceFilenewAPIHadoopFilenewAPIHadoopRDDhadoopFilehadoopRDDunionrunJobsetSystemPropertyuiWebUrlstopsetJobGroupsetLocalPropertygetConf
  • 不支持 Spark 配置 属性 spark.executor.extraJavaOptions

  • 使用 spark.createDataFrame本地数据创建数据帧时,行大小不能超过 128MB。

  • 不支持 RDD API。

UDF 限制

流式处理限制

注释

一些列出的 Kafka 选项在 Azure Databricks 上用于受支持的配置时,支持有限。 所有列出的 Kafka 限制对于批处理和流处理均有效。 请参阅使用 Apache Kafka 和 Azure Databricks 进行流处理

  • 不能使用 statestorestate-metadata 格式来查询有状态流式处理查询的状态信息。

  • transformWithState 和相关的 API 不受支持。

  • 不支持使用套接字源。

  • sourceArchiveDir 与 Unity Catalog 管理的数据源配合使用时,option("cleanSource", "archive") 必须位于源所在的同一外部位置。

  • 对于 Kafka 源和接收器,不支持以下选项:

    • kafka.sasl.client.callback.handler.class
    • kafka.sasl.login.callback.handler.class
    • kafka.sasl.login.class
    • kafka.partition.assignment.strategy

网络和文件系统限制

  • 标准计算以低特权用户身份运行命令,禁止访问文件系统的敏感部分。
  • 不支持 DBFS 的 POSIX 样式路径 (/)。
  • 只有具有 ANY FILE 权限的工作区管理员和用户才能使用 DBFS 直接与文件交互。
  • 无法连接到实例元数据服务或 Azure WireServer。

Scala 内核限制

在标准计算上使用 scala 内核时,以下限制适用:

  • 如果某些类与内部杏仁内核库冲突,则不能在代码中使用,尤其是 Input。 有关杏仁定义的进口列表,请参阅 杏仁进口
  • 不支持直接登录到 log4j。
  • 在 UI 中,不支持数据帧架构下拉列表。
  • 如果驱动程序达到 OOM,Scala REPL 不会终止。
  • //connector/sql-aws-connectors:sql-aws-connectors 不在 Scala REPL 的 bazel 目标中,使用它会导致 ClassNotFoundException
  • Scala 内核与 SQLImplicits 不兼容。

依赖于运行时的限制

通过运行时更新解决了以下限制,但如果使用较旧的运行时,仍可能适用于工作负荷。

语言支持

功能 / 特点 必需的 Databricks Runtime 版本
Scala 13.3 或更高版本
默认情况下,所有运行时捆绑的 Java 和 Scala 库都可用 15.4 LTS 或更高版本(对于 15.3 或更低版本,设置 spark.databricks.scala.kernel.fullClasspath.enabled=true

Spark API 支持

功能 / 特点 必需的 Databricks Runtime 版本
Spark ML 17.0 或更高版本
Python:、、、<a 14.0 或更高版本
Scala Dataset作:map、、mapPartitionsforeachPartitionflatMapreducefilter 15.4 LTS 或更高版本

UDF 支持

功能 / 特点 必需的 Databricks Runtime 版本
applyInPandasmapInPandas 14.3 LTS 或更高版本
标量 UDF 和 Scala UDAF 14.3 LTS 或更高版本
从 PySpark UDF 中的 Git 文件夹、工作区文件或卷导入模块 14.3 LTS 或更高版本
通过笔记本或计算范围的库使用自定义版本的 grpcpyarrowprotobuf PySpark UDF 14.3 LTS 或更高版本
非标量 Python 和 Pandas UDF,包括 SPARK 上的 UDAF、UDF 和 Pandas 14.3 LTS 或更高版本
Python 标量 UDF 和 Pandas UDF 13.3 LTS 或更高版本

流式处理支持

功能 / 特点 必需的 Databricks Runtime 版本
transformWithStateInPandas 16.3 或更高版本
applyInPandasWithState 14.3 LTS 或更高版本
Scala foreach 16.1 或更高版本
Scala foreachBatchflatMapGroupsWithState 16.2 或更高版本
Scala from_avro 14.2 或更高版本
Kafka 选项 kafka.ssl.truststore.locationkafka.ssl.keystore.location (指定位置必须是 Unity 目录管理的外部位置) 13.3 LTS 或更高版本
Scala StreamingQueryListener 16.1 或更高版本
与 Unity 目录托管对象交互的 Python StreamingQueryListener 14.3 LTS 或更高版本

此外,对于 Python, foreachBatch 在 Databricks Runtime 14.0 及更高版本上具有以下行为更改:

  • print() 命令会将输出写入驱动程序日志。
  • 无法访问函数内的 dbutils.widgets 子模块。
  • 函数中引用的任何文件、模块或对象都必须可序列化并在 Spark 上可用。

网络和文件系统支持

功能 / 特点 必需的 Databricks Runtime 版本
与 80 和 443 以外的端口的连接 12.2 LTS 或更高版本