Для огромного количества огромных файлов csv (100M строк +) из разных источников Мне нужен быстрый фрагмент или библиотека, чтобы автоматически угадывать формат даты и преобразовывать его в режим распада или времени unix -печать. Как только успешно догадался, фрагмент должен иметь возможность проверять последующие вхождения поля даты на достоверность, потому что, вероятно, формат даты изменяется по всему файлу.Быстрое автоматическое угадывание строк даты
Тестовый набор форматов даты должен быть переменным, но компиляция оптимального дерева решений или что-то из числа заданных форматов дат прекрасна.
Я пришел к выводу, что ничего подобного не существует, но все же необходимо провести «исследование рынка», следовательно, мой вопрос.
Моя первая попытка состояла в том, чтобы имитировать getdate() для 23 разных форматов дат, которые я наблюдал до сих пор, и заменить парсеры числа оптимизированными версиями, учитывающими характеристики даты (от «4» до «9») в десятидневной части, от «3» до «9» в десятках части месяца и т. д.)
Неужели кто-нибудь сталкивается с подобной проблемой или даже создает код такого рода?
Имеет ли каждый файл CSV только один формат даты, или они являются микс? –
Обычно это только один формат для каждого файла, но иногда они меняют формат по всему файлу, вероятно, результат совместного использования кота. Довольно часто вы видите, что импорт в базу данных преуспевает для первых 98 миллионов строк, а затем следующие 40 миллионов строк полностью увязаны. – hroptatyr
Будет сложно, если у вас есть определенные форматы дат. Является ли «060804» 8 июня 2004 года, 6 августа 2004 года (европейский), или 4 августа 2006 года (yymmdd)? У вас могут не быть таких форматов, но если вы это сделаете, вам придется выбирать, и вы можете обнаружить, что выбрали неверно. Если это постоянная нагрузка, посмотрите, можете ли вы вернуться к источнику и заставить их исправить это. Если это разовая вещь, вам придется запутаться. – mattmc3