我对 Apache Arrow 很陌生,所以这个问题可能是无知的。Apache Arrow 提供了以标准化内存格式存储原始类型/结构/数组等数据结构的能力,我想知道是否可以使用 Apache Arrow 存储更复杂的数据结构,如哈希表(或平衡搜索树)?
很多算法都依赖这些数据结构来工作,在这种情况下,Apache Arrow 用户是否需要将箭头数据转换为特定语言的数据结构?
我对 Apache Arrow 很陌生,所以这个问题可能是无知的。Apache Arrow 提供了以标准化内存格式存储原始类型/结构/数组等数据结构的能力,我想知道是否可以使用 Apache Arrow 存储更复杂的数据结构,如哈希表(或平衡搜索树)?
很多算法都依赖这些数据结构来工作,在这种情况下,Apache Arrow 用户是否需要将箭头数据转换为特定语言的数据结构?
您当然可以定义由 Arrow 列格式支持的静态/不可变哈希表(例如,如果您希望能够内存映射磁盘哈希表)。您必须确定哈希表的“模式”是什么,例如它可能是
is_filled: boolean
key: KeyType
value: ValueType
这假定散列和比较函数是已知的并且对于基于密钥类型的应用程序来说是恒定的。
如果您希望键和值在内存中彼此相邻,那么您可以将它们编码为二进制类型
is_filled: boolean
keyvalue: binary
哈希表的实际实现取决于您。欢迎您将此类代码贡献给 Apache Arrow 代码库本身。