以下代码定义了CSV文件的架构,它将用于加载大量CSV文件。但是,存在一些数据错误,例如,日期格式不正确,缺少必填字段的数据等。如何使用所有无效数据的模式生成文件报告。只有在没有错误的情况下才会执行Request.InputStream
。
Load
建议的错误报告示例:
A Rows with missing values: 20, 40, 60, ... Rows with invalid values: 30(NaN), 31(Xyz), .... B C Rows with invalid values: 200 (2015Q1), ....
答案 0 :(得分:3)
没有内置支持 - 您可以选择明确地使列的类型可选,然后检查数据集中的None
值。这样,您可以获得缺少数据或没有数据的行列表:
type MyCsvType = CsvProvider<Schema="A (int option), B (string option), C (date option)", HasHeaders=false>
let c = MyCsvType.Parse(""", hi, 1/1/2001
1, hi, foo""")
printfn "Rows with missing/invalid values for A:"
c.Rows |> Seq.iteri (fun i v ->
match v.A with
| Some _ -> ()
| None -> printfn " %d" i)
不幸的是,我不认为在解析失败的情况下有办法获得无效值。请open an issue讨论如何支持这一点!