Struct arrow::json::reader::Decoder [−][src]
pub struct Decoder { /* fields omitted */ }
Expand description
JSON values to Arrow record batch decoder. Decoder’s next_batch method takes a JSON Value iterator as input and outputs Arrow record batch.
Examples
use arrow::json::reader::{Decoder, ValueIter, infer_json_schema}; use std::fs::File; use std::io::{BufReader, Seek, SeekFrom}; use std::sync::Arc; let mut reader = BufReader::new(File::open("test/data/mixed_arrays.json").unwrap()); let inferred_schema = infer_json_schema(&mut reader, None).unwrap(); let batch_size = 1024; let decoder = Decoder::new(Arc::new(inferred_schema), batch_size, None); // seek back to start so that the original file is usable again reader.seek(SeekFrom::Start(0)).unwrap(); let mut value_reader = ValueIter::new(&mut reader, None); let batch = decoder.next_batch(&mut value_reader).unwrap().unwrap(); assert_eq!(4, batch.num_rows()); assert_eq!(4, batch.num_columns());
Implementations
Create a new JSON decoder from any value that implements the Iterator<Item=Result<Value>>
trait.
Returns the schema of the reader, useful for getting the schema without reading record batches
pub fn next_batch<I>(&self, value_iter: &mut I) -> Result<Option<RecordBatch>> where
I: Iterator<Item = Result<Value>>,
pub fn next_batch<I>(&self, value_iter: &mut I) -> Result<Option<RecordBatch>> where
I: Iterator<Item = Result<Value>>,
Read the next batch of records