U-SQL提取文件格式错误

时间:2018-03-23 08:50:03

标签: u-sql extractor

这是我关于U-SQL的第一篇帖子/问题 我的进程从Azure Data Lake Storage中提取了巨大的文件数据。 我的问题是其中一个文件结构错误(一个字段少于预期)并且正在崩溃我的进程。

我想管理异常,保持流程运行并告知哪个文件被拒绝或有错误。

我知道参数(silent:true),我只是在为生产环境寻找一个强大的解决方案......如果我只是跳过一个文件,我将丢失数百万笔交易。

以下是我的提取代码:

@Source =

    EXTRACT [RouteVariant] string,
            [StageNumber] string,
            [StopNumber] string,
            [TransactionTime] string,                
            [TicketClass] string,
            [TransactionDate] int,
            [FareValue] double
    FROM @"/Files/Transactions/{*}.csv"
    USING Extractors.Text(delimiter : ';' );

1 个答案:

答案 0 :(得分:0)

如果您知道某些文件可能没有字段,则在提取时可以将该列标记为 Null

例如,让我们说TicketClass是可能不会出现的维度:

EXTRACT [RouteVariant] string,
        [StageNumber] string,
        [StopNumber] string,
        [TransactionTime] string,                
        [TicketClass] string?,
        [TransactionDate] int,
        [FareValue] double
FROM @"/Files/Transactions/{*}.csv"
USING Extractors.Text(delimiter : ';' );

使用询问标记,如果在提取过程中没有出现,则允许该维度为 Null