2 个版本
0.1.1-alpha.4 | 2023年6月7日 |
---|---|
0.1.1-alpha.3 | 2023年6月6日 |
#721 在 科学
31 每月下载量
325KB
6.5K SLoC
TCA 是一个库,用于促进科学数据的开放式分析,简化 ML 模型的应用,并为科学和工程团队提供公共数据接口。
概览
用户主要通过 datafusion 的 SessionContext
以及 TCASessionExt
扩展特质来使用。这提供了一系列方便的方法来从各种来源加载数据。
有关更多信息,请参阅 TCASessionExt
上的 read_*
方法。例如,read_fasta
或 read_gff
。还有一个 read_inferred_tca_table
方法,它将尝试从文件扩展名推断数据类型和压缩,以便于使用。
为了方便这些方法,TCA 为 DataFusion 实现了多个特质,这些特质是科学数据处理的好基础。有关更多信息,请参阅 datasources
模块。
示例
加载一个 FASTA 文件
use tca::context::TCASessionExt;
use datafusion::prelude::*;
use datafusion::error::Result;
let ctx = SessionContext::new();
let df = ctx.read_fasta("test-data/datasources/fasta/test.fasta", None).await?;
assert_eq!(df.schema().fields().len(), 3);
assert_eq!(df.schema().field(0).name(), "id");
assert_eq!(df.schema().field(1).name(), "description");
assert_eq!(df.schema().field(2).name(), "sequence");
let results = df.collect().await?;
assert_eq!(results.len(), 1); // 1 batch, small dataset
加载一个 ZSTD 压缩的 FASTA 文件
use tca::context::TCASessionExt;
use datafusion::prelude::*;
use datafusion::error::Result;
use datafusion::datasource::file_format::file_type::FileCompressionType;
let ctx = SessionContext::new();
let file_compression = FileCompressionType::ZSTD;
let df = ctx.read_fasta("test-data/datasources/fasta/test.fasta.zstd", Some(file_compression)).await?;
assert_eq!(df.schema().fields().len(), 3);
assert_eq!(df.schema().field(0).name(), "id");
assert_eq!(df.schema().field(1).name(), "description");
assert_eq!(df.schema().field(2).name(), "sequence");
let results = df.collect().await?;
assert_eq!(results.len(), 1); // 1 batch, small dataset
依赖项
~68MB
~1.5M SLoC