从评论来看:
值更改时重用的可变容器对象的父类, 从而减少垃圾。
和
保存数组专用容器对象的行类型,类型为 MutableValue,已选择 基于每列的数据类型。 目的是在修改 基元列的值。
来源 - https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/SpecificMutableRow.scala
谁能解释一下它是如何有效的?仅仅避免拳击就足够了吗?
它避免了存储中的装箱,但当与另一个特定接口(即镶木地板阅读器或代码生成的表达式计算)结合使用时,这最有用。
另一个优点是它可以重用(与泛型行不同)。 因此,对于许多操作,它可以在不分配任何对象的情况下对一系列数据进行操作。