JuliaData / Feather.jl

Read and write feather files in pure Julia
https://juliadata.github.io/Feather.jl/stable
Other
109 stars 27 forks source link

Incompatability with DataFrames v0.18 #118

Closed Rudi79 closed 5 years ago

Rudi79 commented 5 years ago

Hi, the following does work on DataFrames v0.17.1 but not in v.0.18.{0,1}:

using Feather, DataFrames, Missings
df = DataFrame(a = missing)
Feather.write("test.feather", df)
dt = Feather.read("test.feather")

tested on linux and windows. A quick workaround was to use Feather.materialize instead.

My versioninfo:

Julia Version 1.1.0
Commit 80516ca202 (2019-01-21 21:24 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
ExpandingMan commented 5 years ago

Thanks, I'll try to work on this this weekend. Could you please post the error you are getting?

This must have something to do with the new copy semantics in DataFrames.

Rudi79 commented 5 years ago

Thank you for taking care of the issue. Here is the error I get:

ERROR: UndefVarError: p not defined
Stacktrace:
 [1] Arrow.NullableList{String,K,P} where P<:Arrow.AbstractPrimitive where K<:Integer(::Arrow.NullableList{String,Int32,Arrow.Primitive{UInt8}}) at C:\Users\Rudi\.julia\packages\Arrow\b4oSO\src\lists.jl:258
 [2] Type at C:\Users\Rudi\.julia\packages\Arrow\b4oSO\src\lists.jl:260 [inlined]
 [3] copy(::Arrow.NullableList{String,Int32,Arrow.Primitive{UInt8}}) at C:\Users\Rudi\.julia\packages\Arrow\b4oSO\src\lists.jl:262
 [4] (::getfield(DataFrames, Symbol("##DataFrame#83#86")))(::Bool, ::Type, ::Array{AbstractArray{T,1} where T,1}, ::DataFrames.Index) at C:\Users\Rudi\.julia\packages\DataFrames\m9gd9\src\dataframe\dataframe.jl:128 
 [5] Type at .\none:0 [inlined]
 [6] #fromcolumns#365(::Bool, ::Function, ::NamedTuple{(:a,),Tuple{Arrow.NullableList{String,Int32,Arrow.Primitive{UInt8}}}}) at C:\Users\Rudi\.julia\packages\DataFrames\m9gd9\src\other\tables.jl:14
 [7] (::getfield(DataFrames, Symbol("#kw##fromcolumns")))(::NamedTuple{(:copycols,),Tuple{Bool}}, ::typeof(DataFrames.fromcolumns), ::NamedTuple{(:a,),Tuple{Arrow.NullableList{String,Int32,Arrow.Primitive{UInt8}}}}) at .\none:0
 [8] #DataFrame#366(::Bool, ::Type, ::Feather.Source{NamedTuple{(:a,),Tuple{Union{Missing, String}}}}) at C:\Users\Rudi\.julia\packages\DataFrames\m9gd9\src\other\tables.jl:24
 [9] DataFrame(::Feather.Source{NamedTuple{(:a,),Tuple{Union{Missing, String}}}}) at C:\Users\Rudi\.julia\packages\DataFrames\m9gd9\src\other\tables.jl:20
 [10] #read#7(::Bool, ::Function, ::String) at C:\Users\Rudi\.julia\packages\Feather\tppUH\src\source.jl:68 [11] read(::String) at C:\Users\Rudi\.julia\packages\Feather\tppUH\src\source.jl:68
 [12] top-level scope at none:0
ExpandingMan commented 5 years ago

Closed via #113