Мы используем Sep для обработки файлов CSV перед массовым импортом в базу данных. Процесс быстрый, но Sep жертвует некоторым исправлением ошибок ради чистой скорости.
Один из наших поставщиков отправляет файлы CSV с недопустимым escape-символом (используя \" внутри другого правильно экранированное строковое поле). Sep не справляется с этим корректно, поставщик еще не исправляет свой процесс, поэтому третий вариант, который я вижу, — попытаться исправить эти данные во время приема. API для Sep может читать из Stream, TextReader, byte[] или напрямую взять имя файла и выполнить его собственное чтение.
Как правильно реализовать фильтр, аналогичный эта подпись? (Я знаю, что это вообще недопустимый C#). Идея состоит в том, что этот фильтр будет находиться между необработанным, потенциально поврежденным файлом на диске и перегрузкой TextReader, из которой Sep может читать. У меня есть идеи. как неэффективно реализовать это, но все, что я делаю с анализом строк, немедленно снижает производительность приложения.
Минимальное воспроизведение проблемы находится здесь: https://github.com/bryanboettcher/SepCrash, но я не пытаюсь сосредоточиться на сентябре. Сент ведет себя правильно.
Минимальное воспроизведение проблемы находится здесь: https://github.com/bryanboettcher/SepCrash, но я не пытаюсь сосредоточиться на сентябре. p>
Сами данные воспроизводятся в репозитории из массового файла данных fakenamegenerator. Строка 3 — это критическая строка, которая очень точно отражает наши фактические данные.
Строка 3, адрес: «1365\" Rosemont Avenue". Для правильного форматирования CSV это должно быть "1365\"" Rosemont Avenue". Мы может обработать ошибочную косую черту в коде приложения, но только после того, как она будет проанализирована библиотекой. Нарушающее поле на самом деле является адресом и будет очищено на этапе проверки адреса позже. Для этой цели либо «1365 Rosemont Avenue. " или "1365\""Роузмонт Авеню" подойдет.
Мы используем Sep для обработки файлов CSV перед массовым импортом в базу данных. Процесс быстрый, но Sep жертвует некоторым исправлением ошибок ради чистой скорости. Один из наших поставщиков отправляет файлы CSV с недопустимым escape-символом (используя \" внутри другого правильно экранированное строковое поле). Sep не справляется с этим корректно, поставщик еще не исправляет свой процесс, поэтому третий вариант, который я вижу, — попытаться исправить эти данные во время приема. API для Sep может читать из Stream, TextReader, byte[] или напрямую взять имя файла и выполнить его собственное чтение. Как правильно реализовать фильтр, аналогичный эта подпись? (Я знаю, что это вообще недопустимый C#). Идея состоит в том, что этот фильтр будет находиться между необработанным, потенциально поврежденным файлом на диске и перегрузкой TextReader, из которой Sep может читать. У меня есть идеи. как неэффективно реализовать это, но все, что я делаю с анализом строк, немедленно снижает производительность приложения. [code]private TextReader FilterData(TextReader raw) { return raw.Replace("\\"", ""); } [/code] Минимальное воспроизведение проблемы находится здесь: https://github.com/bryanboettcher/SepCrash, но я не пытаюсь сосредоточиться на сентябре. Сент ведет себя правильно. Минимальное воспроизведение проблемы находится здесь: https://github.com/bryanboettcher/SepCrash, но я не пытаюсь сосредоточиться на сентябре. p> Сами данные воспроизводятся в репозитории из массового файла данных fakenamegenerator. Строка 3 — это критическая строка, которая очень точно отражает наши фактические данные. [code]Number,Gender,NameSet,Title,GivenName,MiddleInitial,Surname,StreetAddress,City,State,StateFull,ZipCode 1,female,American,Ms.,Danette,J,Bradham,"1385 Foley Street","Fort Lauderdale",FL,Florida,33308 2,female,American,Mrs.,Karla,F,Gandy,"2184 Irish Lane","La Crosse",WI,Wisconsin,54601 3,male,American,Mr.,Kevin,V,Jenkins,"1365\" Rosemont Avenue","Los Angeles",CA,California,90031 4,female,American,Ms.,Vickie,N,Howard,"3847 Java Lane",Columbia,SC,"South Carolina",29201 5,female,American,Ms.,Bonnie,S,Winship,"3389 Shadowmar Drive","New Orleans",LA,Louisiana,70118 [/code] Строка 3, адрес: «1365\" Rosemont Avenue". Для правильного форматирования CSV это должно быть "1365\"" Rosemont Avenue". Мы может обработать ошибочную косую черту в коде приложения, но только после того, как она будет проанализирована библиотекой. Нарушающее поле на самом деле является адресом и будет очищено на этапе проверки адреса позже. Для этой цели либо «1365 Rosemont Avenue. " или "1365\""Роузмонт Авеню" подойдет.
Мы используем Sep для обработки файлов CSV перед массовым импортом в базу данных. Процесс быстрый, но Sep жертвует некоторым исправлением ошибок ради чистой скорости.
Один из наших поставщиков отправляет файлы CSV с недопустимым escape-символом...
Мы используем Sep для обработки файлов CSV перед массовым импортом в базу данных. Процесс быстрый, но Sep жертвует некоторым исправлением ошибок ради чистой скорости.
Один из наших поставщиков отправляет файлы CSV с недопустимым escape-символом...
Я пытаюсь реализовать структуру данных для анализа и анализа данных
Мой формат данных следующий
DATE-TIME DATA DATA DATA
31/3/1999 20:40 6 130 19.95
31/3/1999 23:50 3 440 17.95
31/3/1999 23:20 4 300 18.81
31/3/1999 23:30 5 313 18.48
20/7/1999 23:40...
Я пытаюсь реализовать структуру данных для анализа и анализа данных
Мой формат данных следующий
DATE-TIME DATA DATA DATA
31/3/1999 20:40 6 130 19.95
31/3/1999 23:50 3 440 17.95
31/3/1999 23:20 4 300 18.81
31/3/1999 23:30 5 313 18.48
20/7/1999 23:40...
У меня есть большой Dataframe, над которым мне нужно выполнить множество операций сопоставления, и в прошлом я всегда использовал для этого приведенный ниже метод. Однако Dataframe, который я сейчас пытаюсь выполнить в многопроцессорном режиме,...