以下发行说明提供了由 Apache Spark 3.2.1 提供支持的 Databricks Runtime 10.5 的相关信息。 Databricks 于 2022 年 5 月发布了这些映像。

新增功能和改进

  • SQL:新函数 to_number try_to_number
  • SQL:新函数 try_sum
  • SQL:对 ceil ceiling floor 函数的更新
  • SQL:新的聚合函数 regr_avgx regr_avgy
  • SQL:对 contains startswith endswith 函数的更新
  • SQL:新函数 array_size
  • Unity Catalog:SQL LIST 输出中删除了 is_directory 列,并为目录路径添加了尾部 / (公共预览版)
  • 自动加载程序:新的 SQL 函数 CLOUD_FILES_STATE
  • 自动加载程序:文件通知支持现已正式发布
  • Delta Lake:新的 maxRecordsPerFile 选项,用于指定可写入到单个文件的最大记录数
  • 弃用 Koalas
  • 适用于所有文件格式的新 _metadata
  • 使用 Databricks Runtime 10.5 测试 Delta Live Tables 管道
  • SQL:新函数 to_number try_to_number

    to_number 函数 try_to_number 函数 允许将各种格式的数字字符表示形式转换为 DECIMAL

    SQL:新函数 try_sum

    sum 不同, try_sum 聚合函数 在发生溢出时返回 NULL 而不是错误。

    SQL:对 ceil ceiling floor 函数的更新

    ceil 函数 ceiling 函数 floor 函数 现在支持用于指定目标小数位数的第二个可选参数。

    SQL:新的聚合函数 regr_avgx regr_avgy

    新的 regr_avgx 聚合函数 regr_avgy 聚合函数 支持线性回归。

    SQL:对 contains startswith endswith 函数的更新

    除了支持字符串外, contains 函数 startswith 函数 endswith 函数 现在还支持将二进制数据类型作为输入。

    SQL:新函数 array_size

    新的 array_size 函数 计算数组的大小。

    Unity Catalog:SQL LIST 输出中删除了 is_directory 列,并为目录路径添加了尾部 / (公共预览版)

    更改了用于列出 Unity Catalog 控制的路径的 SQL LIST 语句输出。 不再显示 is_directory 列。 对于 path name 列,表示目录的路径现在以尾部斜杠 ( / ) 结尾。 此项更改是为了与 dbutils.fs.ls 命令的输出保持一致。

    自动加载程序:新的 SQL 函数 CLOUD_FILES_STATE

    可以使用新的 CLOUD_FILES_STATE 函数来查询自动加载程序流的内部状态;请参阅 查询自动加载程序发现的文件

    自动加载程序:文件通知支持现已正式发布

    Google Cloud 对 什么是自动加载程序? 的文件通知支持现已正式发布。

    Delta Lake:新的 maxRecordsPerFile 选项,用于指定可写入到单个文件的最大记录数

    使用数据帧 API 写入到 Delta 表时,可以使用 maxRecordsPerFile 选项来指定可写入到单个文件的最大记录数。 指定零值或负值表示无限制。 请参阅 配置 Delta Lake 以控制数据文件大小

    弃用 Koalas

    Koalas 现已弃用。 Koalas 在 Apache Spark 上提供 pandas API。 Koalas 由社区贡献,从 Apache Spark 3.2 开始作为 Spark 上的 pandas API 提供。 将继续为 Databricks Runtime 10.5 预安装 Koalas,但从下一个 Databricks Runtime 版本开始将不再预安装 Koalas。

    若要详细了解 Spark 上的 pandas API,请参阅:

  • Azure Databricks 文档中的 Spark 上的 Pandas API
  • Apache Spark 文档中的 Spark 上的 Pandas API
  • Apache Spark 文档中的 从 Koalas 迁移到 Spark 上的 pandas API
  • 适用于所有文件格式的新 _metadata

    可以使用 _metadata 列获取输入文件的元数据信息。 _metadata 列处于隐藏状态。 此列适用于所有输入文件格式。 若要将 _metadata 列包含在返回的 DataFrame 中,必须在查询中显式引用此列。 请参阅 文件元数据列

    使用 Databricks Runtime 10.5 测试 Delta Live Tables 管道

    Databricks Runtime 10.5 现在是 Delta Live Tables 支持的 preview 版本。 若要使用 Databricks Runtime 10.5 测试管道,请在管道设置中将 channel 设置设置为 preview 。 请参阅 管道设置

    Bug 修复

  • 修复了已启用变更数据捕获 (CDC) 的 Delta 表上更新操作的 numUpdatedRows numCopiedRows 指标结果的显示。
  • 升级了 Python 库:
    • plotly 已从 5.5.0 升级到 5.6.0
    • 升级了 R 库:
      • base 已从 4.1.2 升级到 4.1.3
      • caret 已从 6.0-90 升级到 6.0-91
      • cluster 已从 2.1.2 升级到 2.1.3
      • commonmark 已从 1.7 升级到 1.8.0
      • compiler 已从 4.1.2 升级到 4.1.3
      • crayon 已从 1.5.0 升级到 1.5.1
      • datasets 已从 4.1.2 升级到 4.1.3
      • desc 已从 1.4.0 升级到 1.4.1
      • fansi 已从 1.0.2 升级到 1.0.3
      • glue 已从 1.6.1 升级到 1.6.2
      • graphics 已从 4.1.2 升级到 4.1.3
      • grDevices 已从 4.1.2 升级到 4.1.3
      • grid 已从 4.1.2 升级到 4.1.3
      • knitr 已从 1.37 升级到 1.38
      • MASS 已从 7.3-55 升级到 7.3-56
      • Matrix 已从 1.4-0 升级到 1.4-1
      • methods 已从 4.1.2 升级到 4.1.3
      • mgcv 已从 1.8-39 升级到 1.8-40
      • nlme 已从 3.1-155 升级到 3.1-157
      • openssl 已从 1.4.6 升级到 2.0.0
      • parallel 已从 4.1.2 升级到 4.1.3
      • plyr 已从 1.8.6 升级到 1.8.7
      • processx 已从 3.5.2 升级到 3.5.3
      • r2d3 已从 0.2.5 升级到 0.2.6
      • Rcpp 已从 1.0.8 升级到 1.0.8.3
      • rlang 已从 1.0.1 升级到 1.0.2
      • rmarkdown 已从 2.11 升级到 2.13
      • RSQLite 已从 2.2.10 升级到 2.2.11
      • sass 已从 0.4.0 升级到 0.4.1
      • splines 已从 4.1.2 升级到 4.1.3
      • stats 已从 4.1.2 升级到 4.1.3
      • stats4 已从 4.1.2 升级到 4.1.3
      • tcltk 已从 4.1.2 升级到 4.1.3
      • tools 已从 4.1.2 升级到 4.1.3
      • utils 已从 4.1.2 升级到 4.1.3
      • uuid 已从 1.0-3 升级到 1.0-4
      • waldo 已从 0.3.1 升级到 0.4.0
      • withr 已从 2.4.3 升级到 2.5.0
      • xfun 已从 0.29 升级到 0.30
      • 升级了 Java 库:
        • com.h2database.h2 已从 1.4.195 升级到 2.1.210
        • org.apache.hadoop.hadoop-client-api 已从 3.3.1-databricks 升级到 3.3.2-databricks
        • org.apache.hadoop.hadoop-client-runtime 已从 3.3.1 升级到 3.3.2
        • org.rocksdb.rocksdbjni 已从 6.24.2 升级到 6.20.3
        • Apache Spark

          Databricks Runtime 10.5 包含 Apache Spark 3.2.1。 此版本包括 Databricks Runtime 10.4 LTS 中包含的所有 Spark 修复和改进,以及对 Spark 进行的以下其他 bug 修复和改进:

        • [SPARK-38354] [SC-97886] 还原“[SQL] 为随机哈希联接添加哈希探测指标”
        • [SPARK-38484] [SAS-103][SAS-111][SAS-113][SC-98102][Cherry-Pick] 使用常规用途记录器检测 PySpark SQL 模块
        • [SPARK-38333] [SQL] PlanExpression 表达式应跳过执行程序中的 addExprTree 函数
        • [SPARK-38646] [PYTHON][10.x] 拉取 Python 函数的特征
        • [SPARK-38674] [PHOTON] 向 PhotonSubqueryBroadcastExec 添加指标
        • [SPARK-38787] [SS] 在键的剩余列表中将找到的值替换为非 null 元素,并从流-流联接的 keyWithIndexToValue 存储的值中删除剩余的 null 元素
        • [SPARK-38446] [Core] 修复 Log4j 在 ExecutorClassLoader 和 FileDownloadCallback 之间导致的死锁
        • [SPARK-38705] [SQL] 在创建和删除函数命令中使用函数标识符
        • [SPARK-38684] [SS] 修复 RocksDB 状态存储提供程序的流-流外部联接的正确性问题
        • [SPARK-38655] [SQL] OffsetWindowFunctionFrameBase 找不到输入不为 null 的偏移行
        • [SPARK-38204] [SS] 为有状态运算符使用 StatefulOpClusteredDistribution 并遵守后向兼容性
        • [SPARK-38616] [SQL] 跟踪 Catalyst TreeNode 中的 SQL 查询文本
        • [SPARK-38600] [SQL] 在 TIMESTAMPADD/DIFF 的 SQL 字符串中包含 unit
        • [SPARK-34805] [SQL] 在“别名”中传播嵌套列中的元数据
        • [SPARK-38535] [SQL] 添加 datetimeUnit 枚举并在 TIMESTAMPADD/DIFF 中使用它
        • [SPARK-38415] [SQL] 更新 histogram_numeric (x, y) 结果类型,使 x == 输入类型
        • [SPARK-38148] [SQL] 如果存在静态分区修剪,则不添加动态分区修剪
        • [SPARK-37527] [SQL] 在 H2Dialet 中编译 COVAR_POP COVAR_SAMP CORR
        • [SPARK-38510] [SQL] 重试 ClassSymbol.selfType 以解决循环引用问题
        • [SPARK-38509] [SQL] 取消注册 TIMESTAMPADD/DIFF 函数并删除 DATE_ADD/DIFF
        • [SPARK-38504] [SQL] 无法将 TimestampNTZ 读取为 TimestampLTZ
        • [SPARK-38526] [SQL] 修复 RuntimeReplaceable 的误导性函数别名
        • [SPARK-38335] [SQL] 实现分析程序对 DEFAULT 列值的支持
        • [SPARK-38593] [SS] 将已删除的延迟事件数指标引入 SessionWindowStateStoreSaveExec
        • [SPARK-38549] [SS] 将 numRowsDroppedByWatermark 添加到 SessionWindowStateStoreRestoreExec
        • [SPARK-38583] [SQL] 还原允许数字类型的 to_timestamp 的行为
        • [SPARK-38481] [SQL] 将 TIMESTAMPADD 中的 Java 溢出异常替换为 Spark 异常
        • [SPARK-37753] [SQL] 微调逻辑以降级 DynamicJoinSelection 中的广播哈希联接
        • [SPARK-37582] [SPARK-37583][SQL] CONTAINS、STARTSWITH、ENDSWITH 应支持字符串和二进制类型
        • [SPARK-38345] [SQL] 引入 SQL 函数 ARRAY_SIZE
        • [SPARK-38385] [SQL] 改进了 ParseException 中的空语句和 <EOF> 的错误消息
        • [SPARK-37614] [SQL] 支持 ANSI 聚合函数:regr_avgx 和 regr_avgy
        • [SPARK-38560] [SQL] 如果 Sum Count Any 伴随 distinct,则无法执行部分聚合下推。
        • [SPARK-38360] [SQL][SS][PYTHON] 为 TreeNode 引入 exists 函数以消除重复的代码模式
        • [SPARK-38385] [SQL] 改善 ANTLR 的“输入不匹配”情况的错误消息
        • [SPARK-38240] [SQL] 改善 RuntimeReplaceable 并添加有关新增函数的准则
        • [SPARK-38542] [SQL] UnsafeHashedRelation 应序列化 numKeys
        • [SPARK-38521] [SQL] 在 Scala 中将 partitionOverwriteMode 从字符串更改为变量
        • [SPARK-38558] [SQL] 删除 IntegerType 和 IntDecimal 之间不必要的强制转换
        • [SPARK-38489] [SQL] Aggregate.groupOnly 支持可折叠表达式
        • [SPARK-38410] [SQL] 支持指定用于重新平衡的初始分区编号
        • [SPARK-38107] [SQL] 在 python/pandas UDF 的编译错误中使用错误类
        • [SPARK-38354] [SQL] 为随机哈希联接添加哈希探测指标
        • [SPARK-38112] [SQL] 在日期/时间戳处理的执行错误中使用错误类
        • [SPARK-38361] [SQL] 将工厂方法 getConnection 添加到 JDBCDialect 中。
        • [SPARK-37865] [SQL] 修复联合重复数据删除正确性 bug
        • [SPARK-38298] [SQL][Tests] 修复 ANSI 模式下的 DataExpressionSuite、NullExpressionsSuite、StringExpressionsSuite、complexTypesSuite、CastSuite
        • [SPARK-38407] [SQL] ANSI 强制转换:放宽强制转换非 null 复杂类型的限制
        • [SPARK-38352] [SQL] 修复 ANSI 模式下的 DataFrameAggregateSuite/DataFrameSetOperationsSuite/DataFrameWindowFunctionsSuite
        • [SPARK-38054] [SQL] 支持 JDBC v2 MySQL 方言中的列表命名空间
        • [SPARK-37960] [SQL] 用于在 DS v2 API 中表示 catalyst 表达式的新框架
        • [SPARK-38103] [SQL] 将转换分析错误迁移到新的错误框架
        • [SPARK-38519] [SQL] AQE 引发异常应遵循 SparkFatalException
        • [SPARK-38528] [SQL] 在 ExtractGenerator 中生成项目列表时立即迭代聚合序列
        • [SPARK-38320] [SS] 修复包含键数据的批中的 flatMapGroupsWithState 超时
        • [SPARK-38442] [SQL] 修复 ANSI 模式下的 ConstantFoldingSuite/ColumnExpressionSuite/DataFrameSuite/AdaptiveQueryExecSuite
        • [SPARK-38268] [SQL] 在 Abs/CheckOverflow 的 toString 方法中隐藏“failOnError”字段
        • [SPARK-37949] [SQL] 改善重新平衡统计数据估算
        • [SPARK-38450] [SQL] 修复 ANSI 模式下的 HiveQuerySuite//PushFoldableIntoBranchesSuite/TransposeWindowSuite
        • [SPARK-38501] [SQL] 修复 ANSI 模式下的 thriftserver 测试失败
        • [SPARK-37895] [SQL] 使用带引号的列筛选下推列
        • [SPARK-38449] [SQL] 当 ignoreIfExists=true 并且表存在时避免调用 createTable
        • [SPARK-38406] [SQL] 提高 ShufflePartitionsUtil createSkewPartitionSpecs 的性能
        • [SPARK-37947] [SQL] 从 Generate 运算符包含的 GeneratorOuter 表达式中提取生成器。
        • [SPARK-38309] [CORE] 修复 SHS shuffleTotalReads shuffleTotalBlocks 百分位指标
        • [SPARK-38412] [SS] 修复 StateSchemaCompatibilityChecker 中 from 和 to 的交换顺序
        • [SPARK-38267] [CORE][SQL][SS] 将布尔表达式中的模式匹配替换为条件语句
        • [SPARK-38104] [SQL] 将窗口分析错误迁移到新的错误框架
        • [SPARK-38434] [SQL] 更正 CheckAnalysis.getDataTypesAreCompatibleFn 方法的语义
        • [SPARK-38033] [SS] SS 处理无法开始,因为...
        • [SPARK-38378] [SQL] 将 ANTLR 语法定义重构为单独的 Parser 和 Lexer 文件
        • [SPARK-37475] [SQL] 将 scale 参数添加到 floor 和 ceil 函数
        • [SPARK-38411] [CORE] 当 doMergeApplicationListingInternal 读取事件日志时使用 UTF-8
        • [SPARK-36553] [ML] KMeans 对于大 K 避免计算辅助统计数据
        • [SPARK-38393] [SQL] 清理已弃用的 GenSeq/GenMap
        • [SPARK-38389] [SQL] 为 TIMESTAMPDIFF() 添加 DATEDIFF() DATE_DIFF() 别名
        • [SPARK-33206] [CORE][3.2] 修复对小型索引文件的随机索引缓存权重计算
        • [SPARK-38353] [PYTHON] 检测 Spark 上的 Pandas API 的 enter 和 exit magic 方法
        • [SPARK-38323] [SQL][Streaming] 支持流式处理中的隐藏文件元数据
        • [SPARK-38138] [SQL] 具体化 QueryPlan 子查询
        • [SPARK-38094] 启用按字段 ID 匹配架构列名称
        • [SPARK-37923] [SQL] 在分析程序中为 BucketSpec 生成分区转换
        • [SPARK-38363] [SQL] 当 ANSI 模式打开时避免 Dataset.summary()/Dataset.describe() 发生运行时错误
        • [SPARK-38284] [SQL] 添加 TIMESTAMPDIFF() 函数
        • [SPARK-38251] [SQL] 在 ANSI 模式下将 Cast.toString 更改为“cast”而不是“ansi_cast”
        • [SPARK-38314] [SQL] 修复写入隐藏文件元数据后无法读取 parquet 文件的问题
        • 请参阅 Databricks Runtime 10.5 维护更新

        • 操作系统:Ubuntu 20.04.4 LTS
        • Java:Zulu 8.56.0.21-CA-linux64
        • Scala:2.12.14
        • Python :3.8.10
        • R:4.1.3
        • Delta Lake:1.2.1
        • 已安装的 Python 库

  •