首页 > 解决方案 > 增量表中的查询

问题描述

我正在尝试使用 delta-rs 从存储在 S3 存储桶中的 delta-lake 读取一些表。

当我运行代码时,它似乎正在打开表格,因为当我打印表格时它返回以下内容:

        version: 0
        metadata: GUID=36348853-e380-4d3d-986f-034b1cd7bcd2, name=None, description=None, partitionColumns=[], createdTime=1632167494225, configuration={}
        min_version: read=1, write=2
        files count: 1

但是当我尝试查询它时,它会返回以下消息:

Parquet reader thread terminated due to error: 
 IoError(Os { code: 2, kind: NotFound, message: "No such file or directory" }

这是我的代码,我不知道我能做些什么来解决这个问题:


#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>>  {
    env::set_var("AWS_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID);
    env::set_var("AWS_SECRET_ACCESS_KEY", AWS_SECRET_ACCESS_KEY);
    
    let web_site_request = GetBucketWebsiteRequest{bucket: S3_TEST_BUCKET.to_string(), expected_bucket_owner: None};
    let table_uri = "s3://dev-evandro/common/lakehouse-sync/parquet/payments/chargebee/customer/";
    let be = storage::get_backend_for_uri(table_uri).unwrap();
    let table = deltalake::open_table(table_uri).await.unwrap();
    println!("{}", table);

    let mut ctx = ExecutionContext::new();
    ctx.register_table("test_table", Arc::new(table))?;
    let batches = ctx
    .sql("SELECT * FROM test_table LIMIT 1")?
    .collect()
    .await?;

    let batch = pretty_format_batches(&[batches][0]).unwrap();
    println!("{}", batch);
    Ok(())        
}

标签: amazon-s3rustdelta-lake

解决方案


推荐阅读