Java 如何将一个简单的、未包装的字节数组写入Apache Arrow ListWriter

Java 如何将一个简单的、未包装的字节数组写入Apache Arrow ListWriter,java,apache-arrow,Java,Apache Arrow,我目前正在编写一些将任意数据结构转换为Apache Arrow vectors的代码,但遇到了一些相对简单的问题,即如何将字节[]写入列表向量 当通过BaseWriter.ListWriter将数据写入ListVector时,可以非常轻松地添加基本类型–即,writer.integer().writeInt(i)或writer.float4().writeFloat4(f) 但是,对于可变长度类型,如字节(或字符串),只剩下签名类似于以下内容的方法: public void write(VarB

我目前正在编写一些将任意数据结构转换为Apache Arrow vectors的代码,但遇到了一些相对简单的问题,即如何将
字节[]
写入
列表向量

当通过
BaseWriter.ListWriter
将数据写入
ListVector
时,可以非常轻松地添加基本类型–即,
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对于简单的情况,
VarBinaryVector
也可以,但我希望能够嵌套列表。此外,列表包含多种类型的功能也很有用