# Moving to juliadb from dataframes and getting error joining tables, dataframes join ok

**URL:** <https://discourse.julialang.org/t/moving-to-juliadb-from-dataframes-and-getting-error-joining-tables-dataframes-join-ok/83894>\
**Category:** General Usage\
**Tags:** juliadb\
**Created:** [July 7, 2022, 1:32pm UTC](https://discourse.julialang.org/t/moving-to-juliadb-from-dataframes-and-getting-error-joining-tables-dataframes-join-ok/83894 "2022-07-07T13:32:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bww00](https://avatars.discourse-cdn.com/v4/letter/b/bc8723/32.png) [@bww00](https://discourse.julialang.org/u/bww00)\
**Post date:** [July 7, 2022, 1:32pm UTC](https://discourse.julialang.org/t/moving-to-juliadb-from-dataframes-and-getting-error-joining-tables-dataframes-join-ok/83894/1 "2022-07-07T13:32:33Z")

</div>

Moving to juliadb from dataframes and getting error joining 2 tables.  
ERROR: LoadError: UndefRefError: access to undefined reference

error is on the join statement

tables load ok.  
Any help appreciated

code and error below

# load juliadb table from csv

# join inventory, ops and da2

using Pkg

#pkg.add(“DataFrames”)

#using DataFrames

#pkg.add(“CSVFiles”)

#using CSVFiles

using Dates

import Dates

Pkg.add(“MD5”)

using MD5

Pkg.add(“SHA”)

using SHA

using Pkg

Pkg.add(“JuliaDB”)

using JuliaDB

Pkg.add(“JuliaDBMeta”)

#######################

# load da2

# 

#cclops\_unique =DataFrame(load(“C:\Users\bwwebb\Downloads\uniqops\_2022\_06\_29\_sv.csv”))

# load inventory

#cclinvent =DataFrame(load(“w:\bwdata\_c\_bwdata\bw\_copy\_ccl\_inentory\_2022\_06\_10\_09\_44\_sv.csv”))

# load DA2 unique

#cclda2 = DataFrame(load(“w:\bwdata\_c\_bwdata\bw\_ccl\_DA2\_unique\_2022\_06\_29\_09\_44\_sv.csv”))

# load smart templates, ge view, labels

#cclst = DataFrame(load(“w:\bwdata\_c\_bwdata\bw\_ccl\_unique\_smart\_temp\_labels\_22022\_07\_06\_sv.csv”))

# join on OBJECT\_NAME from ops and da2 Jays new file combined ops da2

#bwjoinout\_inv\_ops\_da2 = outerjoin(cclda2,cclops\_unique,cclst,cclinvent, on=:OBJECT\_NAME,makeunique=true)

# save dataframe

#save(“w:\bwdata\_c\_bwdata\bwjoinout\_inv\_ops\_da2\_sv.csv”, bwjoinout\_inv\_ops\_da2)

#bwjoinout\_1\_2\_3\_4\_obj\_prgonly =DataFrame(load(“c:\bwdata\bwjoinout\_1\_2\_3\_4\_obj\_prgonly\_aft\_match\_sv.csv”))

#bwjoinout\_obj\_stmplt = outerjoin(bwjoinout\_1\_2\_3\_4\_obj\_prgonly,cclst, on=:OBJECT\_NAME,makeunique=true)

#save(“w:\bwdata\_c\_bwdata\bwjoinout\_obj\_stmplt\_sv.csv”, bwjoinout\_obj\_stmplt)

# try juliadb

cclst\_jdbt = loadtable(“w:\bwdata\_c\_bwdata\bw\_ccl\_unique\_smart\_temp\_labels\_22022\_07\_06\_sv.csv”)

bwjoinout\_1\_2\_3\_4\_obj\_prgonly\_jdbt = loadtable(“c:\bwdata\bwjoinout\_1\_2\_3\_4\_obj\_prgonly\_aft\_match\_sv.csv”)

println(cclst\_jdbt)

join(bwjoinout\_1\_2\_3\_4\_obj\_prgonly\_jdbt, cclst\_jdbt; how = :outer, lkey=:OBJECT\_NAME, rkey=:OBJECT\_NAME)

#bwjoinout\_obj\_stmplt\_jdbt = outerjoin(bwjoinout\_1\_2\_3\_4\_obj\_prgonly,cclst, on=:OBJECT\_NAME,makeunique=true)

#save(bwjoinout\_obj\_stmplt\_jdbt, “w:\bwdata\_c\_bwdata\bwjoinout\_obj\_stmplt\_jdbt.jdb”)  
ERROR: LoadError: UndefRefError: access to undefined reference  
Stacktrace:  
[1] getindex  
@ C:\Users\bwwebb.julia\packages\WeakRefStrings\gPvrY\src\WeakRefStrings.jl:314 [inlined]  
[2] copyto\_unaliased!(deststyle::IndexLinear, dest::Vector{String}, srcstyle::IndexLinear, src::WeakRefStrings.StringVector{String})  
@ Base .\abstractarray.jl:970  
[3] copyto!  
@ .\abstractarray.jl:950 [inlined]  
[4] copyto\_axcheck!(dest::Vector{String}, src::WeakRefStrings.StringVector{String})  
@ Base .\abstractarray.jl:1056  
[5] Array  
@ .\array.jl:540 [inlined]  
[6] convert  
@ .\array.jl:532 [inlined]  
[7] DataValueArray  
@ C:\Users\bwwebb.julia\packages\DataValues\N7oeL\src\array\typedefs.jl:13 [inlined]  
[8] DataValueArray  
@ C:\Users\bwwebb.julia\packages\DataValues\N7oeL\src\array\constructors.jl:8 [inlined]  
[9] (::IndexedTables.var"#287#289"{Vector{Bool}, Vector{Int64}})(col::WeakRefStrings.StringVector{String})  
@ IndexedTables C:\Users\bwwebb.julia\packages\IndexedTables\Jw0SP\src\join.jl:462  
[10] map(f::IndexedTables.var"#287#289"{Vector{Bool}, Vector{Int64}}, t::Tuple{WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}})  
@ Base .\tuple.jl:226  
[11] map(::Function, ::NamedTuple{(:match, :OBJECT, :CCLGROUP, :NODE\_NAME, :BINARY\_CNT, :CHECKSUM, :MAJOR\_VERSION, :MINOR\_VERSION, :UTC\_TMP2\_9, :USER\_NAME, :UTC\_TMP2\_11, :UPDT\_ID, :UPDT\_TASK, :UPDT\_CNT, :UPDT\_APPLCTX, :TIMESTAMP\_DT\_TM, :UPDT\_DT\_TM, :OBJECT\_1, :CCLGROUP\_1, :NODE\_NAME\_1, :BINARY\_CNT\_1, :CHECKSUM\_1, :MAJOR\_VERSION\_1, :MINOR\_VERSION\_1, :UTC\_TMP2\_9\_1, :USER\_NAME\_1, :UTC\_TMP2\_11\_1, :UPDT\_ID\_1, :UPDT\_TASK\_1, :UPDT\_CNT\_1, :UPDT\_APPLCTX\_1, :TIMESTAMP\_DT\_TM\_1, :UPDT\_DT\_TM\_1, :OBJECT\_2, :CCLGROUP\_2, :NODE\_NAME\_2, :BINARY\_CNT\_2, :CHECKSUM\_2, :MAJOR\_VERSION\_2, :MINOR\_VERSION\_2, :UTC\_TMP2\_9\_2, :USER\_NAME\_2, :UTC\_TMP2\_11\_2, :UPDT\_ID\_2, :UPDT\_TASK\_2, :UPDT\_CNT\_2, :UPDT\_APPLCTX\_2, :TIMESTAMP\_DT\_TM\_2, :UPDT\_DT\_TM\_2, :OBJECT\_3, :CCLGROUP\_3, :NODE\_NAME\_3, :BINARY\_CNT\_3, :CHECKSUM\_3, :MAJOR\_VERSION\_3, :MINOR\_VERSION\_3, :UTC\_TMP2\_9\_3, :USER\_NAME\_3, :UTC\_TMP2\_11\_3, :UPDT\_ID\_3, :UPDT\_TASK\_3, :UPDT\_CNT\_3, :UPDT\_APPLCTX\_3, :TIMESTAMP\_DT\_TM\_3, :UPDT\_DT\_TM\_3), Tuple{WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing,  
Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}}})  
@ Base .\namedtuple.jl:197  
[12] join(f::typeof(IndexedTables.concat\_tup), left::NextTable{Columns{NamedTuple{(:match, :OBJECT, :OBJECT\_NAME, :CCLGROUP, :NODE\_NAME, :BINARY\_CNT, :CHECKSUM, :MAJOR\_VERSION, :MINOR\_VERSION, :UTC\_TMP2\_9, :USER\_NAME, :UTC\_TMP2\_11, :UPDT\_ID, :UPDT\_TASK, :UPDT\_CNT,  
:UPDT\_APPLCTX, :TIMESTAMP\_DT\_TM, :UPDT\_DT\_TM, :OBJECT\_1, :CCLGROUP\_1, :NODE\_NAME\_1, :BINARY\_CNT\_1, :CHECKSUM\_1, :MAJOR\_VERSION\_1, :MINOR\_VERSION\_1, :UTC\_TMP2\_9\_1, :USER\_NAME\_1, :UTC\_TMP2\_11\_1, :UPDT\_ID\_1, :UPDT\_TASK\_1, :UPDT\_CNT\_1, :UPDT\_APPLCTX\_1, :TIMESTAMP\_DT\_TM\_1, :UPDT\_DT\_TM\_1, :OBJECT\_2, :CCLGROUP\_2, :NODE\_NAME\_2, :BINARY\_CNT\_2, :CHECKSUM\_2, :MAJOR\_VERSION\_2, :MINOR\_VERSION\_2, :UTC\_TMP2\_9\_2, :USER\_NAME\_2, :UTC\_TMP2\_11\_2, :UPDT\_ID\_2, :UPDT\_TASK\_2, :UPDT\_CNT\_2, :UPDT\_APPLCTX\_2, :TIMESTAMP\_DT\_TM\_2, :UPDT\_DT\_TM\_2, :OBJECT\_3, :CCLGROUP\_3, :NODE\_NAME\_3, :BINARY\_CNT\_3, :CHECKSUM\_3, :MAJOR\_VERSION\_3, :MINOR\_VERSION\_3, :UTC\_TMP2\_9\_3, :USER\_NAME\_3, :UTC\_TMP2\_11\_3, :UPDT\_ID\_3, :UPDT\_TASK\_3, :UPDT\_CNT\_3, :UPDT\_APPLCTX\_3, :TIMESTAMP\_DT\_TM\_3, :UPDT\_DT\_TM\_3), Tuple{String, String, String, Union{Missing, Int64}, String, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Missing, String,  
Missing, Missing, Missing, Missing, Missing, String, String, String, Union{Missing, Int64}, String, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Missing, String, Missing, Missing, Missing, Missing, Missing, String, String, String, Union{Missing, Int64}, String, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Missing, String, Missing, Missing, Missing, Missing, Missing, String, String, String, Union{Missing, Int64}, String, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Union{Missing, Int64}, Missing, String, Missing, Missing, Missing, Missing, Missing, String, String}}, NamedTuple{(:match, :OBJECT, :OBJECT\_NAME, :CCLGROUP, :NODE\_NAME, :BINARY\_CNT, :CHECKSUM, :MAJOR\_VERSION, :MINOR\_VERSION, :UTC\_TMP2\_9, :USER\_NAME, :UTC\_TMP2\_11, :UPDT\_ID, :UPDT\_TASK, :UPDT\_CNT, :UPDT\_APPLCTX, :TIMESTAMP\_DT\_TM, :UPDT\_DT\_TM, :OBJECT\_1, :CCLGROUP\_1, :NODE\_NAME\_1, :BINARY\_CNT\_1, :CHECKSUM\_1, :MAJOR\_VERSION\_1, :MINOR\_VERSION\_1, :UTC\_TMP2\_9\_1, :USER\_NAME\_1, :UTC\_TMP2\_11\_1, :UPDT\_ID\_1, :UPDT\_TASK\_1, :UPDT\_CNT\_1, :UPDT\_APPLCTX\_1, :TIMESTAMP\_DT\_TM\_1, :UPDT\_DT\_TM\_1, :OBJECT\_2, :CCLGROUP\_2, :NODE\_NAME\_2, :BINARY\_CNT\_2, :CHECKSUM\_2, :MAJOR\_VERSION\_2, :MINOR\_VERSION\_2, :UTC\_TMP2\_9\_2, :USER\_NAME\_2, :UTC\_TMP2\_11\_2, :UPDT\_ID\_2, :UPDT\_TASK\_2, :UPDT\_CNT\_2, :UPDT\_APPLCTX\_2, :TIMESTAMP\_DT\_TM\_2, :UPDT\_DT\_TM\_2, :OBJECT\_3, :CCLGROUP\_3, :NODE\_NAME\_3, :BINARY\_CNT\_3, :CHECKSUM\_3, :MAJOR\_VERSION\_3, :MINOR\_VERSION\_3, :UTC\_TMP2\_9\_3, :USER\_NAME\_3, :UTC\_TMP2\_11\_3, :UPDT\_ID\_3, :UPDT\_TASK\_3, :UPDT\_CNT\_3, :UPDT\_APPLCTX\_3, :TIMESTAMP\_DT\_TM\_3, :UPDT\_DT\_TM\_3), Tuple{WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Missing}, WeakRefStrings.StringVector{String}, Vector{Missing}, Vector{Missing}, Vector{Missing}, Vector{Missing}, Vector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Missing}, WeakRefStrings.StringVector{String}, Vector{Missing}, Vector{Missing}, Vector{Missing}, Vector{Missing}, Vector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Missing}, WeakRefStrings.StringVector{String}, Vector{Missing}, Vector{Missing},  
Vector{Missing}, Vector{Missing}, Vector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, WeakRefStrings.StringVector{String}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Union{Missing, Int64}}, Vector{Missing}, WeakRefStrings.StringVector{String}, Vector{Missing}, Vector{Missing}, Vector{Missing}, Vector{Missing}, Vector{Missing}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}}}}}, right::NextTable{Columns{NamedTuple{(:DA2LIT, :OBJECT\_NAME, :CDF\_MEANING, :CODE\_SET, :CODE\_VALUE, :CKI, :DEFINITION), Tuple{String, String, String, Int64, Int64, String, String}}, NamedTuple{(:DA2LIT, :OBJECT\_NAME, :CDF\_MEANING, :CODE\_SET, :CODE\_VALUE, :CKI, :DEFINITION), Tuple{WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}, Vector{Int64}, Vector{Int64}, WeakRefStrings.StringVector{String}, WeakRefStrings.StringVector{String}}}}}; how::Symbol, group::Bool, lkey::Symbol, rkey::Symbol, lselect::NTuple{65, Int64}, rselect::NTuple{6, Int64}, name::Nothing, keepkeys::Bool, init\_group::Nothing, accumulate::Nothing, cache::Bool)  
@ IndexedTables C:\Users\bwwebb.julia\packages\IndexedTables\Jw0SP\src\join.jl:458  
[13] #join#291  
@ C:\Users\bwwebb.julia\packages\IndexedTables\Jw0SP\src\join.jl:504 [inlined]  
[14] top-level scope  
@ \hnas1-users\USERS\bwwebb\My Documents\bwwdata\juliacode\bw\_load\_juliadb\_from\_csv.jl:56  
in expression starting at \hnas1-users\USERS\bwwebb\My Documents\bwwdata\juliacode\bw\_load\_juliadb\_from\_csv.jl:56

---

<div class="post-metadata">

**Author:** ![jpsamaroo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jpsamaroo/32/46804_2.png) [@jpsamaroo](https://discourse.julialang.org/u/jpsamaroo)\
**Post date:** [July 8, 2022, 7:21pm UTC](https://discourse.julialang.org/t/moving-to-juliadb-from-dataframes-and-getting-error-joining-tables-dataframes-join-ok/83894/2 "2022-07-08T19:21:54Z")

</div>

Hi there! Two things:

1. Please use backticks to post code:  
```julia  
my code  
goes here  
```
2. JuliaDB is effectively unmaintained and no longer recommended (in my opinion). I would use DTables.jl instead, which supports join operations.
