2024-09-29 23:18:19 发布
网友
我想使用apachearrow将数据从Django后端发送到有角度的前端。要在数据帧中使用的数据帧/I。pyarrow可以在python微服务之间以这种方式共享数据,但是我找不到arrow的javascript实现方式。在
有没有一种方法可以反序列化/序列化一个以字符串为键,以数据帧/表为值的javascript侧带箭头的字典?在
是的,可以在pyarrow和ArrowJS中使用RecordBatchReader和RecordBatchWriter IPC原语来实现。在
在python端,可以将表序列化为如下所示的缓冲区:
import pyarrow as pa def serialize_table(table): sink = pa.BufferOutputStream() writer = pa.RecordBatchStreamWriter(sink, table.schema) writer.write_table(table) writer.close() return sink.getvalue().to_pybytes() # ...later, in your route handler: bytes = serialize_table(create_your_arrow_table())
然后可以在响应正文中发送字节。如果有多个表,可以将每个表中的缓冲区连接为一个大负载。在
我不确定在python中编写多部分/表单主体响应的功能是什么,但是如果您希望用表的名称(或希望包含的任何其他元数据)发送表,那么这可能是编写响应的最佳方法。在
在JavaScript端,可以使用Table.from()(如果只有一个表)读取响应,如果有多个表,则可以使用RecordBatchReader读取响应,或者如果希望以流式方式读取每个RecordBatch:
Table.from()
RecordBatchReader
您可以在我们的ArrowJS测试中看到更多这样的示例: https://github.com/apache/arrow/blob/3eb07b7ed173e2ecf41d689b0780dd103df63a00/js/test/unit/ipc/writer/stream-writer-tests.ts#L40
您还可以在我编写的一个小fastfy插件中看到一些示例,该插件用于在node:https://github.com/trxcllnt/fastify-arrow中使用和生成箭头有效负载
是的,可以在pyarrow和ArrowJS中使用RecordBatchReader和RecordBatchWriter IPC原语来实现。在
在python端,可以将表序列化为如下所示的缓冲区:
然后可以在响应正文中发送字节。如果有多个表,可以将每个表中的缓冲区连接为一个大负载。在
我不确定在python中编写多部分/表单主体响应的功能是什么,但是如果您希望用表的名称(或希望包含的任何其他元数据)发送表,那么这可能是编写响应的最佳方法。在
在JavaScript端,可以使用
^{pr2}$Table.from()
(如果只有一个表)读取响应,如果有多个表,则可以使用RecordBatchReader
读取响应,或者如果希望以流式方式读取每个RecordBatch:您可以在我们的ArrowJS测试中看到更多这样的示例: https://github.com/apache/arrow/blob/3eb07b7ed173e2ecf41d689b0780dd103df63a00/js/test/unit/ipc/writer/stream-writer-tests.ts#L40
您还可以在我编写的一个小fastfy插件中看到一些示例,该插件用于在node:https://github.com/trxcllnt/fastify-arrow中使用和生成箭头有效负载
相关问题 更多 >
编程相关推荐