我们如何在 Apache Arrow 中存储哈希值 table?
How can we store a hash table in Apache Arrow?
我是 Apache Arrow 的新手,所以这个问题可能是无知的。 Apache Arrow 提供了以标准化内存格式存储原始 types/struct/array 等数据结构的功能,我想知道是否可以使用 Apache Arrow 存储更复杂的数据结构,例如哈希 table (或平衡搜索树)?
许多算法都依赖于这些数据结构来工作,在这种情况下,Apache Arrow 用户是否需要将箭头数据转换为语言特定的数据结构?
您当然可以定义一个 static/immutable 哈希 table 由 Arrow 柱状格式支持(例如,如果您希望能够内存映射磁盘上的哈希 table)。你必须决定散列 table 的 "schema" 是什么,例如它可以是
is_filled: boolean
key: KeyType
value: ValueType
这假定散列函数和比较函数是已知的并且基于密钥类型的应用程序是常量。
如果您希望键和值在内存中彼此相邻,那么您可以将它们编码为二进制类型
is_filled: boolean
keyvalue: binary
哈希 table 的实际实现由您决定。欢迎您将此类代码贡献给 Apache Arrow 代码库本身。
我是 Apache Arrow 的新手,所以这个问题可能是无知的。 Apache Arrow 提供了以标准化内存格式存储原始 types/struct/array 等数据结构的功能,我想知道是否可以使用 Apache Arrow 存储更复杂的数据结构,例如哈希 table (或平衡搜索树)?
许多算法都依赖于这些数据结构来工作,在这种情况下,Apache Arrow 用户是否需要将箭头数据转换为语言特定的数据结构?
您当然可以定义一个 static/immutable 哈希 table 由 Arrow 柱状格式支持(例如,如果您希望能够内存映射磁盘上的哈希 table)。你必须决定散列 table 的 "schema" 是什么,例如它可以是
is_filled: boolean
key: KeyType
value: ValueType
这假定散列函数和比较函数是已知的并且基于密钥类型的应用程序是常量。
如果您希望键和值在内存中彼此相邻,那么您可以将它们编码为二进制类型
is_filled: boolean
keyvalue: binary
哈希 table 的实际实现由您决定。欢迎您将此类代码贡献给 Apache Arrow 代码库本身。