Pour un grand nombre de fichiers csv énormes (100M lignes +) de différentes sources, j'ai besoin d'un extrait rapide ou une bibliothèque pour auto-deviner le format de date et le convertir en temps décomposé ou unix -timbre. Une fois que vous avez réussi à deviner l'extrait doit être en mesure de vérifier la validité des occurrences suivantes du champ de date, car il est probable que le format de date change dans le fichier.auto-deviner rapidement des chaînes de date
L'ensemble de tests des formats de date doit être variable, mais la compilation d'un arbre de décision optimal ou d'un nombre de formats de date donné est bonne. Je suis arrivé à la conclusion que rien de ce genre n'existe mais que je dois faire une «étude de marché» d'où ma question. Ma première tentative a été d'imiter getdate() pour 23 formats de date différents que j'ai observés jusqu'à présent, et de remplacer les parseurs de nombres par des versions optimisées tenant compte des caractéristiques spécifiques à la date (pas de '4' à '9'). dans les parties de la journée, pas de '3' à '9' dans les parties de la partie mois, etc.)
Quelqu'un at-il rencontré un problème similaire ou même produit un code du genre?
Chaque fichier CSV a-t-il un seul format de date, ou s'agit-il d'un mix? –
Il s'agit généralement d'un seul format par fichier, mais parfois ils changent le format dans le fichier, probablement le résultat d'un échange de fichiers. Très souvent, vous voyez une importation dans une base de données réussie pour les 98 premiers millions de lignes, puis les 40 millions suivantes lignes sont complètement borked. – hroptatyr
Ce sera un peu difficile si vous avez certains formats de date. Est "060804" 8 juin 2004, 6 août 2004 (européen), ou 4 août 2006 (yymmdd)? Vous n'avez peut-être pas de formats comme celui-là, mais si vous le faites, vous devrez choisir et vous pourriez vous trouver mal choisi. S'il s'agit d'une charge permanente, vérifiez si vous pouvez revenir à la source et lui demander de la réparer. Si c'est une chose unique, vous allez devoir vous débrouiller. – mattmc3