这是我关于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 : ';' );
答案 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 。