In Version 14.2, together with Tabular object, we introduced "Schema" element and option in Import of CSV. By default Import interprets 0452E105 as a number:
In[1]:= ImportString["1, -2.34, 0452E105", "CSV"]
Out[1]= {{1, -2.34, 4.52*10^107}}
We can get the TabularSchema object using:
In[2]:= schema = ImportString["1, -2.34, 0452E105", {"CSV", "Schema"}]
Out[2]= TabularSchema[<|"ColumnProperties" -> {<|"ElementType" -> "Integer64"|>,
<|"ElementType" -> "Real64"|>, <|"ElementType" -> "Real64"|>},
"KeyColumns" -> None, "Backend" -> "WolframKernel"|>]
Notice the type of the third column is "Real64". To change it to "String" we need to create a new TabularSchema and pass it to Import:
In[3]:= schema2 = TabularSchema[<|"ColumnProperties" -> {<|"ElementType" ->
"Integer64"|>, <|"ElementType" -> "Real64"|>, <|"ElementType" ->
"String"|>}|>]
Out[3]= TabularSchema[<|"ColumnProperties" -> {<|"ElementType" -> "Integer64"|>,
<|"ElementType" -> "Real64"|>, <|"ElementType" -> "String"|>}|>]
In[4]:= ImportString["1, -2.34, 0452E105", "CSV", "Schema" -> schema2]
Out[4]= {{1, -2.34, " 0452E105"}}
To work with large CSV data I strongly suggest to import it as "Tabular" instead of "Data":
In[5]:= ImportString["1, -2.34, 0452E105", {"CSV", "Tabular"}, "Schema" -> schema2] // TabularQ
Out[5]= True