Note that the buffered stream option in parquet::ReaderProperties is
what you want here

https://github.com/apache/arrow/blob/master/cpp/src/parquet/properties.h#L74

On Fri, Jan 22, 2021 at 10:34 PM Micah Kornfield <[email protected]> wrote:
>
> InputStream and RandomAccessFile are inherently different types that support 
> different operations.  RandomAccessFile can emulate and InputStream but not 
> vice-versa.  Parquet files have a footer that requires reading first, so an 
> InputStream cannot be used.
>
> On Wed, Dec 16, 2020 at 6:30 PM annsshadow <[email protected]> wrote:
>>
>> Hi~all
>>
>> I try to use BufferedInputStream to reduce the overhead of some small read 
>> from the network.
>>
>> The pseudo codes are below:
>>
>>
>> ```
>>
>> //get the buffered input stream
>>
>> auto buffered_result = arrow::io::BufferedInputStream::Create()
>>
>> _buffered_infile = buffered_result.ValueOrDie();
>>
>>
>> // follow the example codes, I want to open a parquet file like that
>>
>> // but it meets compiler error: could not convert from 
>> 'std::shared_ptr<arrow::io::BufferedInputStream>' to 
>> 'std::shared_ptr<arrow::io::RandomAccessFile>'
>>
>> PARQUET_THROW_NOT_OK(parquet::arrow::OpenFile(_buffered_infile, 
>> arrow::default_memory_pool(), &_reader_parquet));
>>
>>
>> //the declaration of OpenFile
>>
>> //Status OpenFile(std::shared_ptr<::arrow::io::RandomAccessFile> file, 
>> MemoryPool* pool,
>>
>>                 std::unique_ptr<FileReader>* reader)
>>
>> ```
>>
>>
>> How can I use it correctly?
>>
>> Thanks all~
>>
>>

Reply via email to