When I try this I receive the following error:

Expected to be able to read 824 bytes for message body, got 384

I'm assuming this is because the expected schema is missing?



On Mon, Apr 15, 2024 at 1:49 PM Kevin Liu <kevin.jq....@gmail.com> wrote:

> From the example in the Streaming, Serialization, and IPC
> <https://arrow.apache.org/docs/python/ipc.html#using-streams> doc, it
> looks like you don't need to create/open a stream with a schema, the schema
> can be inferred from the RecordBatchStreamReader object.
>
> ```
> with pa.ipc.open_stream(buf) as reader:
>       schema = reader.schema
>       batches = [b for b in reader]
> ```
>
> On Mon, Apr 15, 2024 at 10:35 AM Amanda Weirich <acweiric...@gmail.com>
> wrote:
>
>> Hello,
>>
>> I have an incoming arrow record batch without a schema attached coming in
>> over a UDP port as buf.to_pybytes. We dont want to attach the schema
>> because the schema is already known. So in my receive script I create my
>> schema, and I am trying to create an arrow stream reader where I pass in
>> the batch and the schema, but it says only one argument can be accepted
>> (meaning it only expected to see the stream and not the schema):
>>
>> # Receive data
>> received_data, addr = sock.recvfrom(1024)
>> # make byte array
>> byte_stream = bytearray(received_data)
>> # Create a BytesIO object from the received data
>> stream = io.BytesIO(byte_stream)
>> schema = create_schema()
>> reader = pa.ipc.open_stream(stream, schema=schema)
>>
>> How can I create an arrow stream reader for this use case?
>>
>> Thank you in advance!
>>
>> Amanda
>>
>

Reply via email to