Skip to content

Commit b74042b

Browse files
committed
refactor: folder structure changed
1 parent 31d177b commit b74042b

File tree

4 files changed

+93
-172
lines changed

4 files changed

+93
-172
lines changed

docs/data_engineering/data_lakehouse/delta_lake/rust.md

Lines changed: 0 additions & 172 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Create Table
2+
3+
```rust
4+
use deltalake::{kernel::DataType, DeltaOps};
5+
6+
#[tokio::main()]
7+
async fn main() {
8+
let delta_ops = DeltaOps::new_in_memory();
9+
10+
let table = delta_ops
11+
.create()
12+
.with_table_name("table_01")
13+
.with_column("id", DataType::INTEGER, false, Default::default())
14+
.with_column("name", DataType::STRING, false, Default::default())
15+
.await
16+
.expect("Table creation failed");
17+
}
18+
```
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Insert data
2+
3+
```rust
4+
use deltalake::arrow::array::{Int32Array, RecordBatch, StringArray};
5+
use deltalake::arrow::datatypes::{DataType as ArrowDataType, Field, Schema as ArrowSchema};
6+
use deltalake::DeltaOps;
7+
use std::sync::Arc;
8+
9+
#[tokio::main()]
10+
async fn main() {
11+
// ...
12+
13+
let schema = Arc::new(ArrowSchema::new(vec![
14+
Field::new("id", ArrowDataType::Int32, false),
15+
Field::new("name", ArrowDataType::Utf8, true),
16+
]));
17+
18+
// Create a employee record
19+
let ids = Int32Array::from(vec![1, 2, 3]);
20+
let names = StringArray::from(vec!["Tom", "Tim", "Titus"]);
21+
let employee_record = RecordBatch::try_new(schema, vec![Arc::new(ids), Arc::new(names)]).unwrap();
22+
23+
// Insert record
24+
let table = DeltaOps(table).write(vec![employee_record]).await.expect("Insert failed");
25+
}
26+
27+
```
28+
29+
## Overwrite
30+
31+
The default save mode for the `delta_ops.write` function is `SaveMode::Append`. To overwrite existing data instead of appending, use `SaveMode::Overwrite`:
32+
33+
```rust
34+
use deltalake::protocol::SaveMode;
35+
use deltalake::DeltaOps;
36+
37+
#[tokio::main()]
38+
async fn main() {
39+
// ...
40+
41+
let table = DeltaOps(table)
42+
.write(vec![employee_record])
43+
.with_save_mode(SaveMode::Overwrite)
44+
.await
45+
.expect("Insert failed");
46+
}
47+
```
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Load table
2+
3+
```rust
4+
use deltalake::operations::collect_sendable_stream;
5+
use deltalake::DeltaOps;
6+
7+
#[tokio::main()]
8+
async fn main() {
9+
// ...
10+
11+
let (_, stream) = DeltaOps(table).load().await.expect("Load failed");
12+
let records = collect_sendable_stream(stream).await.unwrap();
13+
14+
println!("{:?}", records)
15+
}
16+
```
17+
18+
or
19+
20+
```rust
21+
22+
#[tokio::main()]
23+
async fn main() {
24+
// ...
25+
26+
let table = deltalake::open_table("s3://data-lakehouse/employee").await.expect("Load failed");
27+
}
28+
```

0 commit comments

Comments
 (0)