Hi:
heres my codes:
using SQLite
using DataFrames
db=SQLite.DB("test3.db")
query(db,"create table emp (id integer, name text)")
query(db,"insert into emp (id, name) values(1,'jay')")
query(db,"insert into emp (id, name) values(2,'kay')")
query(db,"insert into emp (id, name) values(4,'vay')")
y=SQLite.query(db,"select * from emp")
z=Data.stream!(SQLite.Source(db,"select * from emp"), Data.Table)
DataFrame(z)
and the error reported:
MethodError: `convert` has no method matching
convert(::Type{DataFrames.DataFrame},
::DataStreams.Data.Table{Array{NullableArrays.NullableArray{T,1},1}})
This may have arisen from a call to the constructor
DataFrames.DataFrame(...),
since type constructors fall back to convert methods.WARNING: Error showing
method candidates, aborted
in call at essentials.jl:56
in include_string at C:\Users\shoren\.julia\v0.4\CodeTools\src\eval.jl:28
in include_string at C:\Users\shoren\.julia\v0.4\CodeTools\src\eval.jl:32
[inlined code] from C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:39
in anonymous at C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:62
in withpath at C:\Users\shoren\.julia\v0.4\Requires\src\require.jl:37
in withpath at C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:53
[inlined code] from C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:61
in anonymous at task.jl:58
在 2016年5月26日星期四 UTC+8下午12:45:00,Jacob Quinn写道:
>
> Make sure you do
>
> using DataFrames
> using SQLite
>
> in that order in a fresh Julia session to ensure the conversion methods
> get defined (when you load the SQLite package, it checks if DataFrames has
> already been loaded to define the conversion routines).
>
> -Jacob
>
>
> On Wed, May 25, 2016 at 10:43 PM, SHORE SHEN <[email protected]
> <javascript:>> wrote:
>
>> Hi Alex
>>
>> thanks so much for your reply, I tried out the method but it fails when
>> using DataFrame(Data.stream!(source, Data.Table)) commend. It reported
>> no such method error msg as follow:
>>
>> MethodError: `convert` has no method matching
>> convert(::Type{DataFrames.DataFrame},
>> ::DataStreams.Data.Table{Array{NullableArrays.NullableArray{T,1},1}})
>> This may have arisen from a call to the constructor
>> DataFrames.DataFrame(...),
>> since type constructors fall back to convert methods.WARNING: Error
>> showing method candidates, aborted
>>
>> in call at essentials.jl:56
>> in include_string at C:\Users\shoren\.julia\v0.4\CodeTools\src\eval.jl:28
>> in include_string at C:\Users\shoren\.julia\v0.4\CodeTools\src\eval.jl:32
>> [inlined code] from C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:39
>> in anonymous at C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:62
>> in withpath at C:\Users\shoren\.julia\v0.4\Requires\src\require.jl:37
>> in withpath at C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:53
>> [inlined code] from C:\Users\shoren\.julia\v0.4\Atom\src\eval.jl:61
>> in anonymous at task.jl:58
>>
>> 在 2016年5月26日星期四 UTC+8上午12:30:52,Alex Mellnik写道:
>>
>>>
>>> Yes to both!
>>>
>>> For the first one, you want to use Data.stream! to get a Data.Table from
>>> the result set, and then convert it to a DataFrame. For the second you
>>> need to do the opposite. I generally work with DataFrames so I wrote two
>>> convenience functions for doing this, which should give you an idea of how
>>> to go about it:
>>>
>>> function queryToDF(db, query)
>>> source = SQLite.Source(db, query)
>>> return DataFrame(Data.stream!(source, Data.Table))
>>> end
>>>
>>> function dfToDB(db, df, table)
>>> sink = SQLite.Sink(Data.Table(df), db, table)
>>> Data.stream!(Data.Table(df), sink)
>>> end
>>>
>>> Cheers -A
>>>
>>> On Wednesday, May 25, 2016 at 2:54:26 AM UTC-7, SHORE SHEN wrote:
>>>>
>>>> Hello
>>>>
>>>> Im trying out the sqlite package in julia, I got the following 2
>>>> questions:
>>>>
>>>> 1, the query will result in a type of SQLite.ResultSet, if i can output
>>>> dataframe or dataarry type?
>>>>
>>>> 2, if i have a dataframe or dataarray type, would i be able to put it
>>>> into the database table?
>>>>
>>>> thanks a lot!
>>>>
>>>
>