本页包含标准计算的要求和限制列表。 如果使用经典计算,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.sparkContext
sqlContext
且不支持 Scala:- Azure Databricks 建议使用
spark
变量与SparkSession
实例交互。 - 也不支持以下
sc
函数:emptyRDD
、range
、init_batched_serializer
、parallelize
、pickleFile
、textFile
、wholeTextFiles
、binaryFiles
、binaryRecords
、sequenceFile
、newAPIHadoopFile
、newAPIHadoopRDD
、hadoopFile
、hadoopRDD
、union
、runJob
、setSystemProperty
、uiWebUrl
、stop
、setJobGroup
、setLocalProperty
、getConf
。
- Azure Databricks 建议使用
不支持 Spark 配置 属性
spark.executor.extraJavaOptions
。使用
spark.createDataFrame
本地数据创建数据帧时,行大小不能超过 128MB。不支持 RDD API。
UDF 限制
- 不支持 Hive UDF。 而是 在 Unity 目录中使用 UDF。
流式处理限制
注释
一些列出的 Kafka 选项在 Azure Databricks 上用于受支持的配置时,支持有限。 所有列出的 Kafka 限制对于批处理和流处理均有效。 请参阅使用 Apache Kafka 和 Azure Databricks 进行流处理。
不能使用
statestore
和state-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: |
14.0 或更高版本 |
Scala Dataset 作:map 、、mapPartitions 、foreachPartition flatMap 、reduce 、filter |
15.4 LTS 或更高版本 |
UDF 支持
功能 / 特点 | 必需的 Databricks Runtime 版本 |
---|---|
applyInPandas 、mapInPandas |
14.3 LTS 或更高版本 |
标量 UDF 和 Scala UDAF | 14.3 LTS 或更高版本 |
从 PySpark UDF 中的 Git 文件夹、工作区文件或卷导入模块 | 14.3 LTS 或更高版本 |
通过笔记本或计算范围的库使用自定义版本的 grpc pyarrow protobuf 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 foreachBatch 和 flatMapGroupsWithState |
16.2 或更高版本 |
Scala from_avro |
14.2 或更高版本 |
Kafka 选项 kafka.ssl.truststore.location 和 kafka.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 或更高版本 |