JuliaDB.jl icon indicating copy to clipboard operation
JuliaDB.jl copied to clipboard

pushcol on distributed table

Open jstrube opened this issue 7 years ago • 0 comments
trafficstars

I'm trying to add a column to a distributed table, but the documentation doesn't seem to apply in this case:

momentum_noPhotoMuons = map(i->sqrt(i.px^2+i.py^2+i.pz^2), noPhotonMuons)
Dagger.DArray{Float64,1,JuliaDB.##58#60}(175723,)

Using a pushcol on this variable fails:

pushcol(noPhotonMuons, :momentum, momentum_noPhotoMuons)
MethodError: Dagger.distribute(::Dagger.DArray{Int64,1,JuliaDB.##58#60}, ::Dagger.DomainBlocks{1}) is ambiguous. Candidates:
  distribute(source, rowgroups::AbstractArray) in IterableTables at /home/ilc/jstrube/.julia/v0.6/IterableTables/src/integrations/juliadb.jl:19
  distribute(x::AbstractArray, dist) in Dagger at /home/ilc/jstrube/.julia/v0.6/Dagger/src/array/darray.jl:390
Possible fix, define
  distribute(::AbstractArray, ::AbstractArray)

Stacktrace:
 [1] macro expansion at /home/ilc/jstrube/.julia/v0.6/NamedTuples/src/NamedTuples.jl:289 [inlined]
 [2] _map(::JuliaDB.##39#43, ::NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP_momentum{Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60}}) at /home/ilc/jstrube/.julia/v0.6/NamedTuples/src/NamedTuples.jl:276
 [3] #table#37(::Void, ::Array{Any,1}, ::Function, ::Val{:distributed}, ::NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP_momentum{Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60}}) at /home/ilc/jstrube/.julia/v0.6/JuliaDB/src/table.jl:90
 [4] (::IndexedTables.#kw##table)(::Array{Any,1}, ::IndexedTables.#table, ::Val{:distributed}, ::NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP_momentum{Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60}}) at ./<missing>:0
 [5] #table#104(::Void, ::Array{Any,1}, ::Function, ::NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP_momentum{Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60}}) at /home/ilc/jstrube/.julia/v0.6/IndexedTables/src/table.jl:247
 [6] (::IndexedTables.#kw##table)(::Array{Any,1}, ::IndexedTables.#table, ::NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP_momentum{Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Int64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60},Dagger.DArray{Float64,1,JuliaDB.##58#60}}) at ./<missing>:0
 [7] #table#107(::Array{Symbol,1}, ::Array{Any,1}, ::Function, ::Dagger.DArray{Int64,1,JuliaDB.##58#60}, ::Vararg{AbstractArray,N} where N) at /home/ilc/jstrube/.julia/v0.6/IndexedTables/src/table.jl:259
 [8] (::IndexedTables.#kw##table)(::Array{Any,1}, ::IndexedTables.#table, ::Dagger.DArray{Int64,1,JuliaDB.##58#60}, ::Dagger.DArray{Float64,1,JuliaDB.##58#60}, ::Dagger.DArray{Float64,1,JuliaDB.##58#60}, ::Vararg{AbstractArray,N} where N) at ./<missing>:0
 [9] getindex(::IndexedTables.ColDict{JuliaDB.DNextTable{NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP{Int64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Int64,Float64,Int64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64},Tuple{Int64}}}) at /home/ilc/jstrube/.julia/v0.6/IndexedTables/src/table.jl:360
 [10] pushcol(::JuliaDB.DNextTable{NamedTuples._NT_idx_moduleID_px_py_pz_lx_ly_lz_nPhot_estBG_flag_loglE_loglMu_loglPi_loglK_loglP_nPhotE_nPhotMu_nPhotPi_nPhotK_nPhotP{Int64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Int64,Float64,Int64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64,Float64},Tuple{Int64}}, ::Symbol, ::Vararg{Any,N} where N) at /home/ilc/jstrube/.julia/v0.6/IndexedTables/src/columns.jl:963

While this is no doubt a bug, I'd be happy to work around this for the time being. All I want is to make a histogram of the Dagger.DArray, but I don't understand the data type. Could you please suggest how I can histogram that array?

jstrube avatar Aug 27 '18 22:08 jstrube