如何忽略不符合架构的 U-SQL EXTRACT 中的无效行?

How do I ignore invalid rows in U-SQL EXTRACT that don't fit schema?

我正在尝试使用以下 U-SQL EXTRACT 语句从 CSV 文件中提取一些数据:

EXTRACT SessionId   string,
        Latitude    double,
        Longitude   double,
        Timestamp   int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv();

但是我的工作中途失败了,因为有一行不适合这个模式(在巨大的数据集中很常见),因为它的列数错误。如何避免整个提取失败?

将slient:true参数用于Extractors.Csv() ala:

EXTRACT SessionId   string,
        Latitude    double,
        Longitude   double,
        Timestamp   int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv(silent:true);

请注意,静默标志将执行以下操作:

  1. 忽略列数不匹配的行
  2. 将无效值替换为 null 如果列类型可以为 null。

它将仍然错误如果:

  1. 该值无法转换为预期的不可为 null 的类型。
  2. 指定编码有一个无效字符。