Databricks 于 2020 年 1 月发布了此映像。

以下发行说明提供了由 Apache Spark 支持的 Databricks Runtime 6.3 的相关信息。

Delta Lake

此版本引入了增强的并发性。 关键功能包括:

  • 增强了所有 Delta Lake 操作的并发性 - 你现在可以同时运行更多 Delta Lake 操作。 Delta Lake 的乐观并发控制得到了改进,使冲突检测更加精细。 这样可以更轻松地在 Delta 表上运行复杂的工作流。 例如:

  • 在追加更新的分区时,在较旧的分区上同时运行删除(例如 GDPR 合规性)。
  • 在不相接的分区集上同时运行更新和合并。
  • 同时运行文件压缩和追加。
  • 请参阅 Azure Databricks 上的隔离级别和写入冲突

  • 改进了对文件压缩的支持 - 现在可以通过将 DataFrameWriter 选项 dataChange 设置为 false 来重写文件,以压缩它们。 此选项允许压缩操作与其他批处理和流处理操作同时运行。 有关详细信息,请参阅 压缩文件

  • 改进了仅插入合并的性能 - Delta Lake 现在为只有插入子句且没有更新子句的合并操作提供了更优化的性能。 此外,Delta Lake 可确保来自此类仅插入合并的写入仅将新数据追加到表中。 因此,你现在可以使用结构化流和仅插入合并来连续进行重复数据删除(例如日志)。 请参阅 写入 Delta 表时进行重复数据删除 获取详细信息。

    启用进程隔离时将其他端口列入允许列表

    本文包含对术语“白名单”的引用,Azure Databricks 不再使用该术语。 在从软件中删除该术语后,我们会将其从本文中删除。

    在群集上启用安全功能(如表 ACL 或凭据传递)时,现在可以通过将 Spark 配置 spark.databricks.pyspark.iptable.outbound.whitelisted.ports 设置为列入允许列表的端口,来指定希望 Python 进程能够访问的其他出站端口。 支持的配置值格式为 [port[:port][,port[:port]]...] ,例如: 21,22,9000:9999 。 端口必须位于有效范围内,即 0-65535。

    禁用 Scala 作业的作业输出

    作业输出(如发送到 stdout 的日志输出)的大小限制为 20MB。 可以通过将 spark.databricks.driver.disableScalaOutput Spark 配置设置为 true 来阻止从驱动程序返回 Azure Databricks。 该标志控制 Scala JAR 作业和 Scala 笔记本的单元格输出。 请参阅 输出大小限制

    Azure Databricks 笔记本中现在支持内联 Matplotlib 图形(公共预览版)

    现在,你可以自动显示 Matplotlib 图形,而无需将图形传递给 display 方法。 有关详细信息,请参阅 Matplotlib

    已将新参数添加到 Azure Synapse Analytics

    参数 applicationName 默认设置为 Databricks-User-Query 。 默认值可防止 Azure DB 监视工具针对查询引发虚假 SQL 注入警报。 如果未指定此项,或者值为空字符串,则会将标记的默认值添加到 JDBC URL。 请参阅 Azure Databricks Synapse 连接器选项参考

  • shutil.copytree 现在可用于 /dbfs
  • 在高并发模式群集上运行结构化流式处理生产作业时,作业的重启有时会失败,因为以前运行的作业未正确终止。 若要确保以前的运行停止,请在群集上设置 SQL 配置 spark.sql.streaming.stopActiveRunOnRestart true 。 如果流无法正确停止,则会在 15 秒内引发超时异常。 在这种情况下,建议重启群集。
  • 升级了多个已安装的 R 库。 请参阅 已安装的 R 库
  • Apache Spark

    Databricks Runtime 6.3 包括 Apache Spark 2.4.4。 此版本包括 Databricks Runtime 6.2(不受支持) 中包含的所有 Spark 修复和改进,以及对 Spark 进行的以下其他 bug 修复和改进:

  • [SPARK-30198] [CORE] BytesToBytesMap 不会像预期的那样增长内部长整型数组
  • [SPARK-29918] [SQL] RecordBinaryComparator 应在比较长度时查看字节顺序
  • [SPARK-30274] [CORE] 在保存达到最大容量的密钥时,请避免 BytesToBytesMap 查找永久挂起
  • [SPARK-25392] [CORE][WEBUI] 从历史记录服务器访问池页时防止错误页
  • [SPARK-30263] [CORE] 不要记录在 spark-submit 中忽略的非 Spark 属性的潜在敏感值
  • [SPARK-28637] [SQL] Thriftserver 支持间隔类型
  • [SPARK-30238] [SQL] 配置单元分区修剪只能支持字符串和积分类型
  • [SPARK-30198] [CORE] BytesToBytesMap 不会像预期的那样增长内部长整型数组
  • [SPARK-24666] [ML] 在 numIterations 为大时修复由 Word2Vec 生成的无穷大向量
  • [SPARK-30129] [CORE] 成功身份验证后在 TransportClient 中设置客户端 ID
  • [SPARK-30050] [SQL] 分析表和重命名表不应擦除配置单元表存储桶信息
  • [SPARK-28152] [SQL] 将 ShortType 映射到 SMALLINT,将 FloatType 映射到 REAL for MsSqlServerDialect
  • [SPARK-29971] [CORE] 修复 TransportFrameDecoder/TransportCipher 中的缓冲泄漏
  • [SPARK-29970] [WEBUI] Timelineview 的维护程序打开/关闭状态
  • [SPARK-29949] [SQL] 修复 JSON/CSV 数据源的时间戳格式
  • [SPARK-27558] [CORE] 在任务失败并出现 OOM 异常时正常清理任务
  • [SPARK-29758] [SQL] 修复 json_tuple 中请求的字符串字段的截断
  • [SPARK-29949] [SQL] 修复 JSON/CSV 数据源的时间戳格式
  • [SPARK-29936] [R] 修复 SparkR lint 的错误并添加 lint-r GitHub Action
  • [SPARK-29904] [SQL] 通过 JSON/CSV 数据源以微秒精度解析时间戳
  • [SPARK-29904] [SQL] 通过 JSON/CSV 数据源以微秒精度解析时间戳
  • [SPARK-26499] [SQL] JdbcUtils.makeGetter 不处理 ByteType
  • [SPARK-29682] [SQL] 正确解决扩展中的冲突属性
  • [SPARK-29875] [PYTHON][SQL] 避免在 Spark 2.4.x 中使用已弃用的 pyarrow.open_stream API
  • [SPARK-29850] [SQL] 排序-合并-联接空表时不应发生内存泄漏
  • [SPARK-28939] [SQL] 传播 toRdd 执行的计划的 SQLConf
  • 请参阅 Databricks Runtime 6.3 维护更新

  • 操作系统 :Ubuntu 16.04.6 LTS
  • Java :1.8.0_252
  • Scala :2.11.12
  • Python :3.7.3
  • R :R 版本 3.6.2 (2019-12-12)
  • Delta Lake :0.5.0
  • 尽管 Scala 2.12 可作为 Apache Spark 2.4 中的实验性功能提供,但 Databricks Runtime 6.3 不支持此功能。

    本节内容:

  • 已安装的 Python 库
  • 已安装的 R 库
  • 已安装的 Java 库和 Scala 库(Scala 2.11 群集版本)
  • 已安装的 Python 库