I made a files by Julia serialize and that was on DataFrames 1.3.4. Now package DataFrames new version is 1.6.1. But when using DataFrames 1.6.1, julia doesn't recognize old version DataFrames 1.3.4 file. So I have to pin DataFrames version to old one. Is it going to be solved?
Old version file link is below. https://github.com/andyname/ADiGit/blob/214acca242c5a51bee17cf58d01fc5b9eabc11d4/NAL_IDv3723v3765vSI_WON_IDv20642120v20924959.cs
Serialization in Julia is meant to be a short-term storage format. I am quoting the documentation (you can read the source here):
In short - you should not assume that when you move serialized data between different platform/OS/Julia/package versions they can be read back again.
What you can do assuming that platform, OS, and Julia versions remain the same, but only DataFrames.jl version changes nad I also assume that you are:
DataFrame(if not then the same problems will be caused by changing versions of the packages providing these types)Under these conditions the simplest thing to do is:
dfvariable.NamedTupleby writingnt = Tables.columntable(df)ntnt.df = DataFrame(nt).This procedure will work because we fall back to standard Julia type (
NamedTuple), which will be correctly serialized/deserialized on the same platform, OS, and Julia version.Now, why is this so complex? The reason is that serialization is not part of DataFrames.jl. It is a standard Julia mechanism unaware of DataFrames.jl package existence.
For the future you might consider storing your data in e.g. Arrow.jl format. This format is independent from Julia or DataFrames.jl so it should be stable (and as a bonus you can load/save the files in this format in other ecosystems, e.g. Python or R).