#apache-arrow #parquet #arrow #apache #codec #generic #valu3

无std valu3-parquet

为valu3提供Parquet和Arrow编码和解码

3个版本

0.4.5 2024年2月10日
0.4.4 2024年2月10日
0.4.3 2024年2月10日

#1219编码

MIT/Apache

200KB
5K SLoC

Valu3 Parquet

Apache Arrow Parquet集成于Valu3

此库提供Apache Arrow的Parquet格式和valu3库之间的集成层,便于在Parquet文件和valu3的灵活的Value结构之间进行数据操作和转换。它提供方便的方法来处理表格数据,允许轻松转换和操作数据集。

文档和注意事项

使用我们的github保持最新 Valu3

许可

本项目采用Apache 2.0或MIT许可。有关更多信息,请参阅LICENSE-APACHELICENSE-MIT文件。


lib.rs:

Apache Arrow Parquet集成于Valu3

此库提供Apache Arrow的Parquet格式和valu3库之间的集成层,便于在Parquet文件和valu3的灵活的Value结构之间进行数据操作和转换。它提供方便的方法来处理表格数据,允许轻松转换和操作数据集。

特性

  • prettytable:通过prettytable包启用表格的漂亮打印。

示例

案例1

use valu3_parquet::Table;

let mut table = Table::new();
table.add("id", vec_value![1, 2, 3]);
table.add("name", vec_value!["Alice", "Bob", "Charlie"]);

assert_eq!(table.count_rows(), 3);

案例2

use valu3_parquet::Table;

let mut table = Table::new();
table.add("id", vec_value![1, 2, 3]);
table.add("name", vec_value!["Alice", "Bob", "Charlie"]);
table.add("score", vec_value![85.0, 92.5, 78.3]);

// Access individual values
let name = table.get_value(1, 0).unwrap();

assert_eq!(name.to_string(), "Bob");

案例3

use valu3_parquet::Table;

let mut table = Table::new();
table.add("id", vec_value![1, 2, 3]);
table.add("name", vec_value!["Alice", "Bob", "Charlie"]);
table.add("score", vec_value![85.0, 92.5, 78.3]);

// Convert table to Parquet file
table.to_parquet("data.parquet").expect("Failed to write Parquet file");

// Read Parquet file back into a table
let new_table = Table::from_parquet("data.parquet").expect("Failed to read Parquet file");

// Perform operations on the new table
assert_eq!(table.get_headers(), new_table.get_headers());
assert_eq!(table.get_cols(), new_table.get_cols());

依赖

~27–38MB
~737K SLoC