【问题标题】:How do I ignore invalid rows in U-SQL EXTRACT that don't fit schema?如何忽略 U-SQL EXTRACT 中不适合架构的无效行?
【发布时间】:2016-06-04 00:48:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: azure-data-lake u-sql


    【解决方案1】:

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

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

    如果出现以下情况,它会仍然出错

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

    【讨论】:

    • 是否有一种机制可以用来忽略上述“仍然错误”条件的行?
    • 您必须编写自己的自定义提取器。如果您有特定的场景,请随时在aka.ms/adlfeedback 的内置提取器上添加功能请求。
    【解决方案2】:

    对 Extractors.Csv() 使用 slient:true 参数:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 2021-04-13
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      相关资源
      最近更新 更多