Я хотел бы знать, есть ли какие-либо советы и подсказки, чтобы найти ошибку в данных о работе в аналитике озера. Сообщение об ошибке кажется, что большую часть времени не очень подробно.Отладка u-sql Вакансии
При попытке извлечь из CSV файла Я часто получаю ошибку как этот
Vertex failure triggered quick job abort. Vertex failed: SV1_Extract[0] with >error: Vertex user code error.
Vertex failed with a fail-fast error
кажется, что эти ошибки возникают при попытке преобразовать столбцы указанных типов.
Метод, который я нашел, состоит в том, чтобы извлечь все столбцы в строку и затем выполнить 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 возвращать нуль или значения по умолчанию, в случае ошибки синтаксического анализа, а не всю работу неисправного?
Благодаря
Спасибо за отзыв о подробной ошибке. Я подозревал, что проблема связана со специальными символами в файлах. Это подтвердило это. мои файлы кодируются AINSI, а не UTF-8. Есть ли способ справиться с этим, кроме преобразования файлов? – Olivier
В настоящее время единственным обходным решением является создание собственного пользовательского экстрактора или извлечение полей в виде байта [], а затем преобразование кодовой страницы. Если вам нужна кодировка ANSI, пожалуйста, проголосуйте здесь: https://feedback.azure.com/forums/327234-data-lake/suggestions/13077555-add-ansi-code-page-support-for-built-in -extractors –