Запросы в дельта — таблицах

#amazon-s3 #rust #delta-lake

Вопрос:

Я пытаюсь прочитать некоторые таблицы из delta-lake, хранящиеся в корзине S3, используя delta-rs в rust.

Когда я запустил код, он, похоже, открывает таблицу, потому что, когда я печатаю таблицу, она возвращает следующее:

         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(amp;[batches][0]).unwrap();
    println!("{}", batch);
    Ok(())        
}