Yep,

like I said, just switch your "using" statements around to make sure "using
DataFrames" comes before "using SQLite"

-Jacob

On Wed, May 25, 2016 at 11:15 PM, SHORE SHEN <shore.horizonl...@gmail.com>
wrote:

> 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 <shore.ho...@gmail.com>
>> 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!
>>>>>
>>>>
>>

Reply via email to