我创建了一个U-SQL查询,它从DataLake Store获取输入文件并转换值。最终输出存储在DataLake Store中。
String str = "bevæge";
byte[] b = str.getBytes();
try {
System.out.println(new String (b, "ISO8859-1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
它显示以下错误,
执行失败,错误为'1_SV1_Extract错误:'{“diagnosticCode”:195887132,“severity”:“错误”,“组件”:“RUNTIME”,“source”:“User”,“errorId”:“E_RUNTIME_USER_EXTRACT_COLUMN_CONVERSION_INVALID_ERROR” ,“message”:“尝试转换列数据时无效的字符。”,“description”:“HEX:\”2243616E696E6522 \“转换输入记录时字符无效。\ n位置:第1行,列索引:1,列名: \“Id \”。“,”resolution“:”检查输入是否有错误,或使用\“silent \”开关忽略输入中的over(under)-sized行。\ n忽略“无效”行可能会忽略影响作业结果,并且类型必须可以为空,才能忽略转换错误。“,”helpLink“:”“
答案 0 :(得分:2)
似乎Id列并不总是Integer类型。
我首先将Id列提取为字符串,然后在第二步中尝试使用用户定义的函数将其转换为Int,如下所示:https://msdn.microsoft.com/en-us/library/azure/mt621309.aspx(基于DateTime的示例)。
另一个选项是在提取器中使用silent:true
,因此您会自动忽略转换失败的行。