When there is no HDF5 support for a specific Julia data type, this error can be expected. In this case, it was not specifically DataFrames using Datetime, but the lack of support for the Datetime type itself. Apparently when the library cannot load the type for some reason ( see here and here for other examples too ). The exact cause and correction was different for each type, but the error message led to quick fixes (see below).
Error
HDF5-DIAG: Error detected in HDF5 (1.8.11) thread 0: #000: H5Dio.c line 182 in H5Dread(): can't read data major: Dataset minor: Read failed #001: H5Dio.c line 438 in H5D__read(): unable to set up type info major: Dataset minor: Unable to initialize object #002: H5Dio.c line 939 in H5D__typeinfo_init(): unable to convert between src and dest datatype major: Dataset minor: Feature is unsupported #003: H5T.c line 4525 in H5T_path_find(): no appropriate function for conversion path major: Datatype minor: Unable to initialize object
Historical
Version 0.2.25
I would advise you to upgrade to Julia 0.3 as candidate status for the release and update the package repository. My setup is different; I use different versions of HDF5, JLD, DataFrames and Datetime. But, as said, the two significant changes that I made were to simply specify the module name instead of the file name when calling addrequire , and also use @read and @write , and not the corresponding functions, since the latter seem to be errors.
Version 0.3.0-rc1+4263 (2014-07-19 02:59 UTC) Pkg.status() - DataFrames 0.5.7 - HDF5 0.2.25 - Datetime 0.1.6
Create a data file
using HDF5,JLD,DataFrames,Datetime testFile = jldopen("test.jld","w") addrequire(testFile,"DataFrames") addrequire(testFile,"Datetime") df = DataFrame() df[:column1] = today() @write testFile df close(testFile)
Rebooting Julia and reading ....
julia> using HDF5,JLD,DataFrames,Datetime julia> testFile = jldopen("test.jld","r") Julia data file version 0.0.2: test.jld julia> @read testFile df 1x1 DataFrame |-------|------------| | Row
Version 0.2.25+ (pre-transmission)
In fact, I can confirm that the attempt to store the Datetime was unsuccessful, and using the latter from the repo fixes the problem.
HDF5 0.2.25+ master
if the above change only changes by changing today () to now ()
df[:column1] = now()
Then the following
julia> using HDF5,JLD,DataFrames,Datetime julia> testFile = jldopen("test.jld","r") Julia data file version 0.0.2: test.jld julia> @read testFile df 1x1 DataFrame |-------|-------------------------| | Row
But it seems that the same general error message that occurred for Datetime also holds for the complex type, despite this fix .
c = 1 + im; @write testFile c
Version 0.2.26
This version of the complex was also supported. Initially, it turned out that the problem was insufficient support for the type complex in general, but rather it was a special problem of complex initialization from 1 + im; instead of 1.0 + im.
- HDF5 0.2.26 julia> using HDF5, JLD julia> testFile = jldopen("test.jld","r") Julia data file version 0.0.2: test.jld julia> @read testFile c 1 + 1im