Allow developers to supply their own function to infer column data types from data while loading CSVs #7142
+195
−36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #7141
Currently when you use
LoadCsv
orLoadCsvFromString
without supplying data types for each column, the code will try to guess the data types based on the data in the CSV file. This is good, but the problem is that the default type inference code only considersbool
,float
,DateTime
, andstring
for column types. Sometimes the user may need another data type, such asint
,long
, ordouble
(see issue 6347 for an example where someone had a problem with thefloat
data type that was chosen by default) but not know the structure of the data ahead of time.I would like to be able to pass in my own custom type inference logic to override the default
GuessKind
implementation that is given in the library right now. If no custom guess type function is provided to theLoadCsv
orLoadCsvFromString
methods, then the code should work the same as it does today.