首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Apache Arrow Rust Crate显示UTF8列内容?

如何使用Apache Arrow Rust Crate显示UTF8列内容?
EN

Stack Overflow用户
提问于 2020-10-12 18:14:44
回答 1查看 96关注 0票数 1

我设法加载了一个基于rust的apache::arrow实现的示例和文档的拼图文件。

代码语言:javascript
复制
    use parquet::arrow::{ParquetFileArrowReader, ArrowReader};
    use std::rc::Rc;
    use arrow::record_batch::RecordBatchReader;

    let file = File::open(&Path::new("./path_to/file.parquet")).unwrap();
    let file_reader = SerializedFileReader::new(file).unwrap();
    let mut arrow_reader = ParquetFileArrowReader::new(Rc::new(file_reader));

    println!("Converted arrow schema is: {}", arrow_reader.get_schema().unwrap());

    let mut record_batch_reader = arrow_reader.get_record_reader(2048).unwrap();

我能够显示每个批次的列的名称和类型:

代码语言:javascript
复制
    loop {
       let record_batch = record_batch_reader.next_batch().unwrap().unwrap();
       if record_batch.num_rows() > 0 {
           println!("Schema: {}.", record_batch.schema());
       }
    }

但我对如何显示列的内容感到相当困惑。如何检索第一列的内容并打印它?

EN

回答 1

Stack Overflow用户

发布于 2020-10-12 18:14:44

apache的最后一个版本箭头接缝有一个漂亮的类。不幸的是,这不在最后一个可用的包(1.0.1)中。

代码语言:javascript
复制
use arrow::util::pretty;
pretty::print_batches(&batch);

手动的方法是通过向下转换。

代码语言:javascript
复制
// For an int:
let col = batch.column(0).as_any().downcast_ref::<arrow::array::Int32Array>();

// For a Utf8 string:
let col = batch.column(0).as_any().downcast_ref::<arrow::array::StringArray>();

然后,您可以简单地打印它:

代码语言:javascript
复制
println!("Columns: {:?}.", col);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64315820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档