28 个版本

0.8.13 2024年7月19日
0.8.11 2024年6月18日
0.8.9 2024年2月10日
0.8.8 2023年10月2日
0.7.0 2022年11月25日

#791解析器实现

Download history 136/week @ 2024-04-21 114/week @ 2024-04-28 311/week @ 2024-05-05 131/week @ 2024-05-12 164/week @ 2024-05-19 134/week @ 2024-05-26 139/week @ 2024-06-02 153/week @ 2024-06-09 415/week @ 2024-06-16 171/week @ 2024-06-23 198/week @ 2024-06-30 308/week @ 2024-07-07 285/week @ 2024-07-14 279/week @ 2024-07-21 335/week @ 2024-07-28 196/week @ 2024-08-04

每月1,106 次下载
3 个crate中(直接使用2个)

MIT 许可证

2.5MB
4.5K SLoC

Python 版本 的库。

Python 文档


lib.rs:

快速将 CSV 文件转换为 XLSX/SQLITE/POSTGRESQL/PARQUET。

目标

  • 对 CSV 列进行彻底的类型猜测,因此无需为每个字段配置类型。首先扫描整个文件以确保列中的所有类型都一致。可以检测超过 30 种日期/时间格式以及 JSON 数据。
  • 快速转换/类型猜测(底层使用 rust)。针对每种输出格式使用特定的快速方法
    • copy 用于 postgres
    • 使用 c API 的 sqlite 预处理语句。
    • parquet 的 Arrow 读取器
    • libxlsxwriter 的仅写模式
  • 尝试通过回退到 "text" 来限制将数据插入数据库时的错误,如果类型猜测无法确定更具体的类型。
  • 当向现有数据库插入时,自动迁移目标数据库的模式以允许新数据(evolve 选项)。
  • 内存高效。所有 csvs 和输出都是流式传输的,因此所有转换应该占用非常少的内存。
  • 将有关 CSV 文件的信息和统计信息收集到 datapacakge.json 文件中,该文件可以用于自定义转换。

缺点

  • CSV 文件目前需要标题行。
  • 整个文件需要位于磁盘上,因为整个 CSV 都进行分析,因此文件被读取两次。

依赖关系

~10–29MB
~421K SLoC