Как игнорировать недопустимые строки в U-SQL EXTRACT, которые не соответствуют схеме?

Я пытаюсь извлечь некоторые данные из файла CSV, используя следующий оператор U-SQL EXTRACT:

EXTRACT SessionId   string,
        Latitude    double,
        Longitude   double,
        Timestamp   int
FROM "wasb://[email protected]/"
USING Extractors.Csv();

Но моя работа терпит неудачу на полпути, потому что есть строка, которая не соответствует этой схеме (часто встречается в огромных наборах данных), потому что в ней неправильное количество столбцов. Как мне избежать сбоя всего экстракта?


person outside2344    schedule 04.06.2016    source источник


Ответы (2)


Обратите внимание, что флаг молчания будет делать следующее:

  1. Игнорировать строки с несоответствующим количеством столбцов
  2. замените недопустимые значения на null, если тип столбца допускает значение NULL.

Ошибка будет по-прежнему, если:

  1. значение не может быть приведено к ожидаемому типу, не допускающему значения NULL.
  2. существует недопустимый символ для указанной кодировки.
person Michael Rys    schedule 06.06.2016
comment
Есть ли механизм, который вы можете использовать для игнорирования строк с описанными выше условиями ошибки по-прежнему? - person outside2344; 07.06.2016
comment
Вам нужно будет написать свой собственный экстрактор. Если у вас есть определенные сценарии, не стесняйтесь также добавить запрос функции во встроенные экстракторы на странице aka.ms/adlfeedback. - person Michael Rys; 08.06.2016

Используйте параметр slient: true для Extractors.Csv () ala:

EXTRACT SessionId   string,
        Latitude    double,
        Longitude   double,
        Timestamp   int
FROM "wasb://[email protected]/"
USING Extractors.Csv(silent:true);
person outside2344    schedule 04.06.2016