From ed3586e5653d7283996539511bcf37f6f115d43d Mon Sep 17 00:00:00 2001 From: Erik Mackdanz Date: Thu, 23 Nov 2023 22:25:50 -0600 Subject: [PATCH] write json --- .gitignore | 1 + Cargo.toml | 3 --- src/main.rs | 23 ++++++++++++++++------- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index ea8c4bf..0a25f36 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +/out diff --git a/Cargo.toml b/Cargo.toml index 2623bb2..faabd4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,3 @@ edition = "2021" [dependencies] polars = { version = "0.35.4", features = ["lazy", "fmt", "partition_by", "http", "streaming", "async", "aws", "json", "random"] } polars-io = { version = "0.35.4", features = ["csv", "aws", "fmt", "http", "json"] } - -[build] -rustflags = ["-C", "link-arg=-fuse-ld=lld"] \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 68ad3c7..914ff0c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,13 @@ use polars::prelude::*; -use polars_io::csv::CsvReader; +use std::fs::{create_dir_all,File}; + fn main() { + create_dir_all("out").unwrap(); + let mut file = + File::create("out/output.json").unwrap(); + // set some columns to be parsed as numeric let mut schema_override = Schema::new(); let _ = schema_override.with_column("2022".into(),DataType::Float64); @@ -24,12 +29,16 @@ fn main() { let df = df.filter(&df.column("Country Name").unwrap(). equal("France").unwrap()).unwrap(); - // values not status - let df = df.filter(&df.column("Attribute").unwrap(). - equal("Value").unwrap()).unwrap(); - - // just a few columns - let df = df.select(["Country Name","Indicator Name","Indicator Code","2022"]).unwrap(); + // values not status, selected cols + let mut df = df + .filter(&df.column("Attribute").unwrap(). + equal("Value").unwrap()).unwrap() + .select(["Country Name","Indicator Name","Indicator Code","2022"]).unwrap() + .sort(["Indicator Name"],false,false).unwrap(); println!("df: {:?}",df); + + JsonWriter::new(&mut file) + .finish(&mut df).unwrap(); + } -- 2.52.0