我想知道是否有任何提示和技巧来查找数据湖分析工作中的错误。大多数时候错误消息似乎不是很详细。
当尝试从 CSV 文件中提取时,我经常收到这样的错误
顶点故障触发作业快速中止。顶点失败:SV1_Extract[0] 且>错误:顶点用户代码错误。
顶点因快速失败错误而失败
尝试将列转换为指定类型时似乎会发生这些错误。
我发现的技术是将所有列提取为字符串,然后执行 SELECT 尝试将列转换为预期类型。逐列执行此操作可以帮助找到错误的特定列。
@data =
EXTRACT ClientID string,
SendID string,
FromName string,
FROM "wasb://..."
USING Extractors.Csv();
//convert some columns to INT, condition to skip header
@clean =
SELECT Int32.Parse(ClientID) AS ClientID,
Int32.Parse(SendID) AS SendID,
FromName,
FROM @data
WHERE !ClientID.StartsWith("ClientID");
是否也可以使用 TryParse 之类的东西在解析错误时返回 null 或默认值,而不是整个作业失败?
Thanks
这是一个无需使用代码隐藏的解决方案(尽管代码隐藏将使您的代码更具可读性):
SELECT ((Func<string, Int32?>)(v => { Int32 res; return Int32.TryParse(v, out res)? (Int32?) res : (Int32?) null; }))(ClientID) AS ClientID
此外,您看到的有关错误消息神秘的问题与一个错误有关,该错误应该在返回所谓的内部错误消息时尽快修复。今天的工作是执行以下操作:
- 在 VisualStudio 的 ADL 工具中,打开失败作业的作业视图。
- 在左下角,单击作业详细信息区域中的“资源”链接。
- 加载作业资源后,单击“配置文件”。
- 在行开头搜索字符串“jobError”。复制整行文本并粘贴到记事本(或其他文本编辑器)中以读取实际错误。
这应该会给你确切的错误消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)