Apache Arrow - v21.1.0
    正在准备搜索索引...

    Class Builder<T, TNull>抽象

    用于从任意JavaScript值构造Arrow向量的类型的抽象基类。

    一个`Builder`负责根据每种DataType的Arrow规范,将任意JavaScript值写入ArrayBuffer和/或子构建器,并在必要时创建或调整底层ArrayBuffer的大小。

    每个Arrow `DataType`的`Builder`负责转换和追加给定`DataType`的值。高级便利方法`makeBuilder()`会为提供的`DataType`创建特定的`Builder`子类。

    一旦创建,`Builder`实例支持在`Builder`末尾追加值,以及随机访问写入特定索引(`Builder.prototype.append(value)`是`builder.set(builder.length, value)`的便利方法)。追加或设置超出`Builder`当前长度的值可能会导致构建器增长其底层缓冲区或子构建器(如果适用)以适应新值。

    向`Builder`写入足够多的值后,`Builder.prototype.flush()`会将这些值提交到底层的ArrayBuffers(或子Builder)。内部的Builder状态将被重置,并返回一个`Data`实例。或者,`Builder.prototype.toVector()`会清空`Builder`并返回一个`Vector`实例。

    当没有更多值可写入时,使用`Builder.prototype.finish()`来完成`Builder`。这不会重置内部状态,因此如果仍有值需要刷新,则需要最后一次调用`Builder.prototype.flush()`或`toVector()`。

    注意:使用`DictionaryBuilder`时需要调用`Builder.prototype.finish()`,因为此时它会刷新已在其内部字典的`Builder`中排队的值,并为`Dictionary` `DataType`创建`dictionaryVector`。

    import { makeBuilder, Utf8 } from 'apache-arrow';

    const utf8Builder = makeBuilder({
    type: new Utf8(),
    nullValues: [null, 'n/a']
    });

    utf8Builder
    .append('hello')
    .append('n/a')
    .append('world')
    .append(null);

    const utf8Vector = utf8Builder.finish().toVector();

    console.log(utf8Vector.toJSON());
    // > ["hello", null, "world", null]

    T 此`Builder`的`DataType`。

    TNull 将被视为空值哨兵的值的类型。

    类型参数

    索引

    构造函数

    • 使用给定的Arrow DataType构造一个构建器,带有可选的空值,这些空值在设置或附加到`Builder`时将被解释为“null”。

      类型参数

      参数

      • options: BuilderOptions<T, TNull>

        用于创建此`Builder`的`BuilderOptions`对象。

      返回 Builder<T, TNull>

    属性

    children: Builder<any, any>[]
    finished: boolean = false

    一个布尔值,指示此`Builder`是否已调用`Builder.prototype.finish()`。

    length: number = 0

    已写入`Builder`但尚未刷新的值的数量。

    nullValues?: null | TNull[] | readonly TNull[]

    此`Builder`的空值哨兵列表。当其中一个值写入`Builder`(通过`Builder.prototype.set()`或`Builder.prototype.append()`)时,一个1位写入此Builder底层的空BitmapBufferBuilder。

    stride: number

    底层值TypedArray中表示单个逻辑元素的元素数量,由该Builder的`DataType`决定。对于大多数类型,此值为1,但当`DataType`为`Int64`、`Uint64`、`Decimal`、`DateMillisecond`、某些`Interval`、`Time`或`Timestamp`变体、`FixedSizeBinary`和`FixedSizeList`时,此值更大。

    type: T

    Builder的`DataType`实例。

    访问器

    • get byteLength(): number

      返回 number

      已写入值的总长度(字节)。

    • get nullBitmap(): null | Uint8Array

      返回 null | Uint8Array

    • get reservedByteLength(): number

      返回 number

      已预留用于写入新值的总长度(字节)。

    • get reservedLength(): number

      返回 number

      已预留用于写入新值的总行数。

    • get typeIds(): null | Int8Array

      返回 null | Int8Array

    • get valueOffsets(): null | T["TOffsetArray"]

      返回 null | T["TOffsetArray"]

    • get values(): null | T["TArray"]

      返回 null | T["TArray"]

    方法

    • 清除此构建器的内部状态,包括子构建器(如果适用),并将长度重置为0。

      返回 Builder<T, TNull>

      已清除的`Builder`实例。

    • 将所有已写入的值提交到其底层ArrayBuffers,包括任何子Builder(如果适用),并重置内部`Builder`状态。

      返回 Data<T>

      表示写入值的缓冲区和子项的`Data`。

    • 在提供的`index`处检索子`Builder`,如果该索引处不存在子构建器,则返回null。

      类型参数

      参数

      • index: number

        要检索的子`Builder`的索引。

      返回 null | Builder<R, any>

      在所提供索引处的子 Builder,如果不存在则为 null。

    • 验证一个值是否有效(true)或为空(false)

      参数

      • value: TNull | T["TValue"]

        要与空值表示进行比较的值

      返回 boolean

    • 在提供的索引处写入一个值(或空值哨兵)。如果该值与其中一个空值表示匹配,则将1位写入空`BitmapBufferBuilder`。否则,将0写入空`BitmapBufferBuilder`,并将该值传递给`Builder.prototype.setValue()`。

      参数

      • index: number

        要写入值的索引。

      • value: TNull | T["TValue"]

        要在提供的索引处写入的值。

      返回 Builder<T, TNull>

      已更新的`Builder`实例。

    • 参数

      • index: number
      • valid: boolean

      返回 boolean

    • 将值写入底层缓冲区中指定索引处,绕过空值检查。这是一个低级方法,它

      参数

      • index: number
      • value: T["TValue"]

      返回 void