如何忽略U-SQL EXTRACT中不适合模式的无效行?

时间:2016-06-04 00:48:01

标签: azure-data-lake u-sql

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

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

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

2 个答案:

答案 0 :(得分:7)

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

  1. 忽略列数不匹配的行
  2. 将无效值替换为null ,如果列类型可为空。
  3. 如果出现仍然错误

    1. 该值无法转换为预期的不可空类型。
    2. 指定的编码存在无效字符。

答案 1 :(得分:5)

将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);