I am attempting to use the reqwest crate to stream binary data in arrow-IPC format from a REST API endpoint out of my control. The reqwest::Reponse object has a bytes_stream() method that returns a type implementing the trait Stream<Item = Result<Bytes>>. I'm hoping its possible to read this as a RecordBatch stream in some way, such as with arrow-ipc::reader::StreamReader or some other implementer of the arrow_array::RecordBatchReader trait. What's the best way to do this?
How can I read a reqwest::Response object's bytes_stream() with an implementer of arrow_array::RecordBatchReader?
57 Views Asked by jwimberley At
1
There are 1 best solutions below
Related Questions in RUST
- `ColumnNotFound("id")` when inserting with SQLx
- Polars with Rust: Out of Memory Error when Processing Large Dataset in Docker Using Streaming
- Why is a slice a DST?
- Unable to Retrieve External Public Address in libp2p Swarm Events
- Dynamic Nested Multi-Dimensional Arrays in Rust
- Generic property compare
- "(Reason: CORS header ‘Access-Control-Allow-Origin’ missing)" while trying to access Actix webserver from Wix site
- Is a directory (os error 21) when using rust to move a file
- Different types even though same value assigned
- How to pass a byte array to a WASM module from wasmer in Rust?
- Mutable borrow problem with inserting Vacant entry into HashMap
- Expected behavior while printing reference and dereference of a variable
- How to allocate a large structure in a heap baked `Arc<T>` without stack overflow in Rust?
- In Rust, how to inspect values captured by a closure?
- How to encrypt a string at compile-time and decrypt it at runtime in Rust, similar to constexpr encryption in c++?
Related Questions in APACHE-ARROW
- How do I locally host an Apache Arrow Flight server using Go and retrieve in Javascript?
- Alternatives for distinct(.keep_all = TRUE) in arrow?
- R arrow query extremely slow first time, fast thereafter?
- Is there any way to stream to a parquet file in Ruby?
- parquet StreamReader giving blank values for few columns, and correct for another?
- How can I order an arrow2 Chunk by a given column in rust?
- How can I read a reqwest::Response object's bytes_stream() with an implementer of arrow_array::RecordBatchReader?
- how to create a dataframe in Rust so it can be used in DataFusion?
- how to create a polars-arrow `Array` from raw values (`&[u8]`)
- How to group arrow table by column value in C++?
- arrow::open_dataset, hive partitioning, and number-like strings
- One-hot-encoding while loading data with arrow-rs
- SQL query on arrow duckdb workflow in R
- Arrow RecordBatch as Polars DataFrame
- apache arrow - array of variant type
Related Questions in REQWEST
- reqwest example POST request not compiling
- How do I handle raising an error if reqwest status code is not 200
- DELETE index command returns varying JSON objects
- Mailgun api keeps returning a 401
- Is base64 encoding a good way to safe space when using serde_json for a Vec<u8>
- reqwest segmentation fault from AWS Lambda with Rust
- Why would a cross-compilation build fail on openssl when openssl is not in the dependency graph?
- How to make function that returns text from response?
- Rust warp How to proxy request with json payload to another url by adding extra header?
- expected struct `Vec`, found enum `Result` in tokio, cacache and match
- Why does creating a simple Reqwest Client panic?
- Why do the bytes of a PNG image downloaded with reqwest differ from those downloaded with Python?
- How can an arbitrary json structure be deserialized with reqwest get in Rust?
- Converting a simple Python requests POST to Rust reqwest
- Why is a PNG image downloaded by reqwest corrupt?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The
arrowcrate does not have support for async currently (although there is an open issue for that), but the alternativearrow2does, and luckily it also defines a conversion layer between its types andarrow's types. So this is one option (the code is quite involved becausearrow2's async support requires anAsyncRead, but what we have is aStreamgivingBytes):Cargo.toml:
Another, simpler option is to give up async support and just use reqwest's blocking interface: