JLD2 is a structured Julia data format comprising a subset of HDF5, without any dependency on the HDF5 C library.
JLD2 files have extension .jld2
and are binary files that can be read and written by Julia, which requires to load package JLD2.jl in the Julia environment.
Package JchemoData uses JLD2 format, as well as the examples of the help pages of package Jchemo and the project-environment JchemoDemo.
This note illustrates how to
Load a JLD2 dataset already existing
Build a JLD2 dataset from CSV files
Save a JLD2 dataset to CSV files
For details on using dataframes and CSV files, see the documentation of packages
Packages required for the examples
using Jchemo, JchemoData using JLD2, CSV, DataFrames
The example below loads dataset tecator.jld2
stored in package JchemoData.
path_jdat = dirname(dirname(pathof(JchemoData))) # automatically detect the path where Julia has installed package JchemoData db = joinpath(path_jdat, "data/tecator.jld2") # full path to the jld2 file; can be changed to any other existing .jld2 file ## Same as: db = string(path_jdat, "\\data\\tecator.jld2")
"C:\\Users\\lesnoff\\.julia\\packages\\JchemoData\\5mVcR\\data/tecator.jld2"
Situation 1
The name of the object contained in the .jl2
file is known. In this example, the name is dat
@load db dat # same as: dat = load(db, "dat") @names dat # @names is a Jchemo function
(:X, :Y)
@head dat.X
... (178, 100)
Row | 850 | 852 | 854 | 856 | 858 | 860 | 862 | 864 | 866 | 868 | 870 | 872 | 874 | 876 | 878 | 880 | 882 | 884 | 886 | 888 | 890 | 892 | 894 | 896 | 898 | 900 | 902 | 904 | 906 | 908 | 910 | 912 | 914 | 916 | 918 | 920 | 922 | 924 | 926 | 928 | 930 | 932 | 934 | 936 | 938 | 940 | 942 | 944 | 946 | 948 | 950 | 952 | 954 | 956 | 958 | 960 | 962 | 964 | 966 | 968 | 970 | 972 | 974 | 976 | 978 | 980 | 982 | 984 | 986 | 988 | 990 | 992 | 994 | 996 | 998 | 1000 | 1002 | 1004 | 1006 | 1008 | 1010 | 1012 | 1014 | 1016 | 1018 | 1020 | 1022 | 1024 | 1026 | 1028 | 1030 | 1032 | 1034 | 1036 | 1038 | 1040 | 1042 | 1044 | 1046 | 1048 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | |
1 | 2.61776 | 2.61814 | 2.61859 | 2.61912 | 2.61981 | 2.62071 | 2.62186 | 2.62334 | 2.62511 | 2.62722 | 2.62964 | 2.63245 | 2.63565 | 2.63933 | 2.64353 | 2.64825 | 2.6535 | 2.65937 | 2.66585 | 2.67281 | 2.68008 | 2.68733 | 2.69427 | 2.70073 | 2.70684 | 2.71281 | 2.71914 | 2.72628 | 2.73462 | 2.74416 | 2.75466 | 2.76568 | 2.77679 | 2.7879 | 2.79949 | 2.81225 | 2.82706 | 2.84356 | 2.86106 | 2.87857 | 2.89497 | 2.90924 | 2.92085 | 2.93015 | 2.93846 | 2.94771 | 2.96019 | 2.97831 | 3.00306 | 3.03506 | 3.07428 | 3.11963 | 3.16868 | 3.21771 | 3.26254 | 3.29988 | 3.32847 | 3.34899 | 3.36342 | 3.37379 | 3.38152 | 3.38741 | 3.39164 | 3.39418 | 3.3949 | 3.39366 | 3.39045 | 3.38541 | 3.37869 | 3.37041 | 3.36073 | 3.34979 | 3.33769 | 3.32443 | 3.31013 | 3.29487 | 3.27891 | 3.26232 | 3.24542 | 3.22828 | 3.2108 | 3.19287 | 3.17433 | 3.15503 | 3.13475 | 3.11339 | 3.09116 | 3.0685 | 3.04596 | 3.02393 | 3.00247 | 2.98145 | 2.96072 | 2.94013 | 2.91978 | 2.89966 | 2.87964 | 2.8596 | 2.8394 | 2.8192 |
2 | 2.83454 | 2.83871 | 2.84283 | 2.84705 | 2.85138 | 2.85587 | 2.8606 | 2.86566 | 2.87093 | 2.87661 | 2.88264 | 2.88898 | 2.89577 | 2.90308 | 2.91097 | 2.91953 | 2.92873 | 2.93863 | 2.94929 | 2.96072 | 2.97272 | 2.98493 | 2.9969 | 3.00833 | 3.0192 | 3.0299 | 3.04101 | 3.05345 | 3.06777 | 3.08416 | 3.10221 | 3.12106 | 3.13983 | 3.1581 | 3.17623 | 3.19519 | 3.21584 | 3.23747 | 3.25889 | 3.27835 | 3.29384 | 3.30362 | 3.30681 | 3.30393 | 3.297 | 3.28925 | 3.28409 | 3.28505 | 3.29326 | 3.30923 | 3.33267 | 3.36251 | 3.39661 | 3.43188 | 3.46492 | 3.49295 | 3.51458 | 3.53004 | 3.54067 | 3.54797 | 3.55306 | 3.55675 | 3.55921 | 3.56045 | 3.56034 | 3.55876 | 3.55571 | 3.55132 | 3.54585 | 3.5395 | 3.53235 | 3.52442 | 3.51583 | 3.50668 | 3.497 | 3.48683 | 3.47626 | 3.46552 | 3.45501 | 3.44481 | 3.43477 | 3.42465 | 3.41419 | 3.40303 | 3.39082 | 3.37731 | 3.36265 | 3.34745 | 3.33245 | 3.31818 | 3.30473 | 3.29186 | 3.27921 | 3.26655 | 3.25369 | 3.24045 | 3.22659 | 3.21181 | 3.196 | 3.17942 |
3 | 2.58284 | 2.58458 | 2.58629 | 2.58808 | 2.58996 | 2.59192 | 2.59401 | 2.59627 | 2.59873 | 2.60131 | 2.60414 | 2.60714 | 2.61029 | 2.61361 | 2.61714 | 2.62089 | 2.62486 | 2.62909 | 2.63361 | 2.63835 | 2.6433 | 2.64838 | 2.65354 | 2.6587 | 2.66375 | 2.6688 | 2.67383 | 2.67892 | 2.68411 | 2.68937 | 2.6947 | 2.70012 | 2.70563 | 2.71141 | 2.71775 | 2.7249 | 2.73344 | 2.74327 | 2.75433 | 2.76642 | 2.77931 | 2.79272 | 2.80649 | 2.82064 | 2.83541 | 2.85121 | 2.86872 | 2.88905 | 2.91289 | 2.94088 | 2.97325 | 3.00946 | 3.0478 | 3.08554 | 3.11947 | 3.14696 | 3.16677 | 3.17938 | 3.18631 | 3.18924 | 3.1895 | 3.18801 | 3.18498 | 3.18039 | 3.17411 | 3.16611 | 3.15641 | 3.14512 | 3.13241 | 3.11843 | 3.10329 | 3.08714 | 3.07014 | 3.05237 | 3.03393 | 3.01504 | 2.99569 | 2.97612 | 2.95642 | 2.9366 | 2.91667 | 2.89655 | 2.87622 | 2.85563 | 2.83474 | 2.81361 | 2.79235 | 2.77113 | 2.75015 | 2.72956 | 2.70934 | 2.68951 | 2.67009 | 2.65112 | 2.63262 | 2.61461 | 2.59718 | 2.58034 | 2.56404 | 2.54816 |
@head dat.Y
... (178, 4)
Row | water | fat | protein | typ |
---|---|---|---|---|
Float64 | Float64 | Float64 | String | |
1 | 60.5 | 22.5 | 16.7 | train |
2 | 46.0 | 40.1 | 13.5 | train |
3 | 71.0 | 8.4 | 20.5 | train |
Situation 2
The name of the object contained in the .jl2
file is unknown
res = load(db) keys(res)
KeySet for a Dict{String, Any} with 1 entry. Keys: "dat"
dat = res["dat"] @names dat
(:X, :Y)
In this example, two CSV files are imported, transformed to dataframes and saved to a JLD2 file (.jld2)
db = joinpath(path_jdat, "data/cassav_X.csv") # full path to the CSV file; can be changed to any other existing .CSV file X = CSV.read(db, DataFrame; header = 1, decimal = '.', delim = ';') # same as below: #X = CSV.File(db; header = 1, delim = ';') |> DataFrame #X = DataFrame(CSV.File(db, header = 1, delim = ';')) @head X
... (280, 1050)
Row | 400 | 402 | 404 | 406 | 408 | 410 | 412 | 414 | 416 | 418 | 420 | 422 | 424 | 426 | 428 | 430 | 432 | 434 | 436 | 438 | 440 | 442 | 444 | 446 | 448 | 450 | 452 | 454 | 456 | 458 | 460 | 462 | 464 | 466 | 468 | 470 | 472 | 474 | 476 | 478 | 480 | 482 | 484 | 486 | 488 | 490 | 492 | 494 | 496 | 498 | 500 | 502 | 504 | 506 | 508 | 510 | 512 | 514 | 516 | 518 | 520 | 522 | 524 | 526 | 528 | 530 | 532 | 534 | 536 | 538 | 540 | 542 | 544 | 546 | 548 | 550 | 552 | 554 | 556 | 558 | 560 | 562 | 564 | 566 | 568 | 570 | 572 | 574 | 576 | 578 | 580 | 582 | 584 | 586 | 588 | 590 | 592 | 594 | 596 | 598 | ⋯ |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | ⋯ | |
1 | 0.399996 | 0.406522 | 0.413008 | 0.41958 | 0.426073 | 0.43219 | 0.438007 | 0.443949 | 0.44995 | 0.455081 | 0.45934 | 0.463535 | 0.467663 | 0.4711 | 0.473688 | 0.475809 | 0.477585 | 0.479175 | 0.480602 | 0.481708 | 0.482613 | 0.483457 | 0.484222 | 0.484873 | 0.485359 | 0.485729 | 0.486114 | 0.486469 | 0.486478 | 0.48599 | 0.485258 | 0.484175 | 0.482594 | 0.481078 | 0.48004 | 0.478911 | 0.477338 | 0.475769 | 0.474313 | 0.472419 | 0.470243 | 0.468227 | 0.465727 | 0.461779 | 0.456278 | 0.44993 | 0.442413 | 0.433093 | 0.422563 | 0.411268 | 0.399469 | 0.387154 | 0.374109 | 0.360391 | 0.346233 | 0.331832 | 0.317179 | 0.302623 | 0.288342 | 0.274052 | 0.260325 | 0.247976 | 0.236827 | 0.226326 | 0.216817 | 0.208673 | 0.201658 | 0.195395 | 0.189823 | 0.185099 | 0.181055 | 0.177544 | 0.174485 | 0.171748 | 0.169348 | 0.167329 | 0.165411 | 0.163188 | 0.161034 | 0.159611 | 0.158424 | 0.15692 | 0.155245 | 0.153579 | 0.151826 | 0.150128 | 0.148504 | 0.14687 | 0.145472 | 0.144396 | 0.143197 | 0.141824 | 0.140615 | 0.13959 | 0.138668 | 0.137875 | 0.137149 | 0.136432 | 0.135721 | 0.134834 | ⋯ |
2 | 0.460896 | 0.46706 | 0.475677 | 0.483438 | 0.490809 | 0.49877 | 0.506465 | 0.513268 | 0.519421 | 0.525145 | 0.530744 | 0.536144 | 0.540957 | 0.545328 | 0.549367 | 0.552727 | 0.555333 | 0.557708 | 0.560185 | 0.562357 | 0.563894 | 0.564909 | 0.565277 | 0.565188 | 0.565042 | 0.564877 | 0.564355 | 0.563649 | 0.563257 | 0.563012 | 0.562394 | 0.561379 | 0.560341 | 0.559398 | 0.558006 | 0.555778 | 0.553171 | 0.550812 | 0.548678 | 0.546616 | 0.544579 | 0.542149 | 0.538448 | 0.533893 | 0.529018 | 0.523422 | 0.516682 | 0.509148 | 0.501018 | 0.491444 | 0.480527 | 0.469045 | 0.456873 | 0.443933 | 0.430479 | 0.416739 | 0.402484 | 0.387522 | 0.372858 | 0.359546 | 0.347254 | 0.334975 | 0.322734 | 0.311426 | 0.301126 | 0.291658 | 0.282998 | 0.27483 | 0.266987 | 0.259567 | 0.25244 | 0.245352 | 0.238349 | 0.23153 | 0.224645 | 0.217789 | 0.211007 | 0.204099 | 0.197368 | 0.191349 | 0.185842 | 0.180374 | 0.17498 | 0.169971 | 0.165402 | 0.161085 | 0.156995 | 0.153294 | 0.150104 | 0.147443 | 0.145052 | 0.142827 | 0.140707 | 0.138663 | 0.136762 | 0.13506 | 0.133552 | 0.132191 | 0.130964 | 0.129819 | ⋯ |
3 | 0.464731 | 0.471416 | 0.47828 | 0.48733 | 0.497117 | 0.503004 | 0.505579 | 0.509316 | 0.514649 | 0.519317 | 0.523192 | 0.527309 | 0.531434 | 0.534748 | 0.537076 | 0.539033 | 0.540811 | 0.541883 | 0.542183 | 0.54232 | 0.542744 | 0.543293 | 0.543675 | 0.54372 | 0.543589 | 0.543868 | 0.544487 | 0.544648 | 0.544239 | 0.543642 | 0.542987 | 0.542122 | 0.541004 | 0.539853 | 0.538904 | 0.537862 | 0.536159 | 0.534021 | 0.532138 | 0.530054 | 0.527327 | 0.524462 | 0.521329 | 0.51703 | 0.511295 | 0.504519 | 0.496551 | 0.487221 | 0.476865 | 0.464969 | 0.451786 | 0.438225 | 0.424616 | 0.41058 | 0.395809 | 0.380595 | 0.365225 | 0.349705 | 0.334253 | 0.319378 | 0.305204 | 0.291255 | 0.277619 | 0.265214 | 0.25445 | 0.244907 | 0.236255 | 0.228498 | 0.221774 | 0.216081 | 0.210953 | 0.206254 | 0.202226 | 0.198769 | 0.195577 | 0.192592 | 0.189974 | 0.187627 | 0.185356 | 0.183314 | 0.181477 | 0.179274 | 0.176502 | 0.174001 | 0.172465 | 0.171099 | 0.169275 | 0.167275 | 0.165531 | 0.164022 | 0.162529 | 0.161149 | 0.160061 | 0.159114 | 0.157931 | 0.156577 | 0.155341 | 0.154278 | 0.153273 | 0.152306 | ⋯ |
db = joinpath(path_jdat, "data/cassav_Y.csv") # full path to the CSV file; can be changed to any other existing .CSV file Y = CSV.read(db, DataFrame; header = 1, decimal = '.', delim = ';') @head Y
... (280, 2)
Row | year | tbc |
---|---|---|
Int64 | Float64 | |
1 | 2009 | 1.58068 |
2 | 2009 | 7.85516 |
3 | 2009 | 1.77595 |
dat = (X = X, Y) # create a tuple with the dataframes @names dat
(:X, :Y)
Saving dataset my_cassav
path_out = tempdir() # path receiving the result file; can be changed to any other existing path db_out = joinpath(path_out, "my_cassav.jld2") @save db_out dat # same as below: #jldsave(db_out; dat) #jldsave(db_out, true; dat) # 'true" ==> compression
db = joinpath(path_jdat, "data/tecator.jld2") # full path to the jld2 file; can be changed to any other existing .jld2 file @load db dat @names dat
(:X, :Y)
Saving datasets X
and Y
path_out = tempdir() # path that will receive the result file; can be changed to any other existing path db_out = joinpath(path_out, "X.csv") CSV.write(db_out, dat.X; delim = ";") # same as: :dat.X |> CSV.write(db_out; delim = ";")
"C:\\Users\\lesnoff\\AppData\\Local\\Temp\\X.csv"
db_out = joinpath(path_out, "Y.csv") CSV.write(db_out, dat.X; delim = ";")
"C:\\Users\\lesnoff\\AppData\\Local\\Temp\\Y.csv"