3

我目前正在编写一些代码来将任意数据结构转换为 Apache 箭头向量,但遇到了一些相对简单的问题,即如何将 abyte[]写入ListVector.

ListVector当通过 a向 a 写入数据时BaseWriter.ListWriter,可以很容易地添加原始类型 - 即,writer.integer().writeInt(i)writer.float4().writeFloat4(f)

但是,对于像字节(或字符串)这样的可变长度类型,只剩下带有类似于以下签名的方法:

public void write(VarBinaryHolder h);

public void writeVarBinary(int start, int end, ArrowBuf buffer);

作为VarBinaryHolder一个ArrowBuf甚至没有构造函数的简单生成的包装类。

我期待的东西类似于VarBinaryVector提供的东西,它有Mutator一种setSafe(int index, byte[] bytes)方法可以完全满足预期。

此外,似乎没有直接的方法将字节数组包装到 中ArrowBuf,我看到的唯一方法是将数据写入新的VarBinaryVector并在之后获取底层ArrowBuf

所以,我的审讯是:

  • 只是 API 缺少一个方法,还是我什至不应该使用列表向量来存储字节1的列表?
  • 我错过了另一种明显的方法吗?

1 AVarBinaryVector适用于简单的情况,但我也希望能够嵌套列表。此外,列表包含多种类型的能力也很有用。

4

0 回答 0