Updated polars version for faster CSV reader (#3781)

This commit is contained in:
Fernando Herrera
2021-07-14 21:33:21 +01:00
committed by GitHub
parent 2864eaebae
commit 3645a0f0e4
5 changed files with 44 additions and 17 deletions

View File

@ -98,7 +98,7 @@ which = { version="4.1.0", optional=true }
zip = { version="0.5.9", optional=true }
[dependencies.polars]
version = "0.14.5"
version = "0.14.7"
optional = true
features = ["parquet", "json", "random", "pivot", "strings", "is_in"]

View File

@ -8,7 +8,7 @@ use nu_protocol::{
};
use nu_source::Tagged;
use polars::prelude::{CsvReader, JsonReader, ParquetReader, SerReader};
use polars::prelude::{CsvEncoding, CsvReader, JsonReader, ParquetReader, PolarsError, SerReader};
use std::fs::File;
pub struct DataFrame;
@ -151,7 +151,8 @@ fn from_csv(args: CommandArgs) -> Result<polars::prelude::DataFrame, ShellError>
let columns: Option<Vec<Value>> = args.get_flag("columns")?;
let csv_reader = CsvReader::from_path(&file.item)
.map_err(|e| parse_polars_error::<&str>(&e, &file.tag.span, None))?;
.map_err(|e| parse_polars_error::<&str>(&e, &file.tag.span, None))?
.with_encoding(CsvEncoding::LossyUtf8);
let csv_reader = match delimiter {
None => csv_reader,
@ -205,6 +206,15 @@ fn from_csv(args: CommandArgs) -> Result<polars::prelude::DataFrame, ShellError>
match csv_reader.finish() {
Ok(df) => Ok(df),
Err(e) => Err(parse_polars_error::<&str>(&e, &file.tag.span, None)),
Err(e) => match e {
PolarsError::Other(_) => Err(ShellError::labeled_error_with_secondary(
"Schema error",
"Error with the inferred schema",
&file.tag.span,
"You can use the argument 'infer_schema' with a number of rows large enough to better infer the schema",
&file.tag.span,
)),
_ => Err(parse_polars_error::<&str>(&e, &file.tag.span, None)),
},
}
}

View File

@ -38,7 +38,7 @@ nu-value-ext = { version = "0.34.0", path="../nu-value-ext" }
nu-ansi-term = { version = "0.34.0", path="../nu-ansi-term" }
[dependencies.polars]
version = "0.14.5"
version = "0.14.7"
optional = true
features = ["strings", "checked_arithmetic"]

View File

@ -31,7 +31,7 @@ serde_yaml = "0.8.16"
toml = "0.5.8"
[dependencies.polars]
version = "0.14.5"
version = "0.14.7"
optional = true
features = ["serde", "rows"]