Невозможно извлечь простой CSV-файл с помощью U-SQL - PullRequest
0 голосов
/ 30 августа 2018

У меня есть этот CSV-файл , Почти все записи обрабатываются нормально, однако есть два случая, когда у меня возникла проблема.

Дело 1: Запись, содержащая кавычки в кавычках:

"some data "some data" some data"

Случай 2: Запись, содержащая запятую в кавычках:

"some data, some data some data"

Я изучил эту проблему и обошел все вокруг, изучив параметр цитирования экстрактора, но я заметил, что настройка (цитирование: false) решает случай 1 и завершается неудачей для случая 2 и настройки (цитирование: true) разрешает случай 2, но не работает для случая 1.

ограничения: Нет места для изменения файла данных, будущие данные будут соответствующим образом скорректированы, но для этих существующих данных я должен решить эту проблему.

1 Ответ

0 голосов
/ 31 августа 2018

Попробуйте, импортируйте записи как одну строку и исправьте текст строки, используя двойные кавычки (сделайте то же самое для запятых):

DECLARE @input string = @"/Samples/Data/Sample1.csv";
DECLARE @output string = @"/Output/Sample1.txt";

// Import records as one row

@data =
    EXTRACT rowastext string
    FROM @input
    USING Extractors.Text('\n', quoting: false );

// Fix the row text using double quotes

@query =
    SELECT Regex.Replace(rowastext, "([^,])\"([^,])", "$1\"\"$2") AS rowascsv
    FROM @data;    

OUTPUT @query
TO @output
USING Outputters.Csv(quoting : false);
...