Thanks Alex. On Thu, Apr 2, 2020 at 1:39 AM Alex Ott <alex...@gmail.com> wrote:
> Hi > > Working code is below, but I want to warn you - prefer not to use IN with > partition keys - because you'll have different partition key values, > coordinator node will need to perform queries to other hosts that hold > these partition keys, and this slow downs the operation, and adds an > additional load to the coordinating node. If you execute queries in > parallel (using async) for every of combination of pk1 & pk2, and then > consolidate data application side - this could be faster than query with > IN. > > Answer: > > You need to pass list as value of temp - IN expects list there... > > query = session.prepare("select * from test.table1 where pk1 IN ? and > pk2=0 and ck1 > ? AND ck1 < ?;") > temp = [1,2,3] > > import dateutil.parser > > ck1 = dateutil.parser.parse('2020-01-01T00:00:00Z') > ck2 = dateutil.parser.parse('2021-01-01T00:00:00Z') > > rows = session.execute(query, (temp, ck1, ck2)) > for row in rows: > print row > > > > > Nitan Kainth at "Wed, 1 Apr 2020 18:21:54 -0500" wrote: > NK> Hi There, > > NK> I am trying to read data from table as below structure: > > NK> table1( > NK> pk1 bigint, > NK> pk2 bigint, > NK> ck1 timestamp, > NK> value text, > NK> primary key((pk1,pk2),ck1); > > NK> query = session.prepare("select * from table1 where pk IN ? and pk2=0 > and ck1 > ? AND ck1 < ?;") > > NK> temp = 1,2,3 > > NK> runq = session.execute(query2, (temp,ck1, ck1)) > > NK> TypeError: Received an argument of invalid type for column > "in(bam_user)". Expected: <class 'cassandra.cqltypes.ListType(LongType)'>, > Got: > NK> <class 'cassandra.encoder.ValueSequence'>; (cannot convert argument > to integer) > > NK> I found examples for prepared statements for inserts but couldn't > find any for select and not able to make it to work. > > NK> Any suggestions? > > > > -- > With best wishes, Alex Ott > Principal Architect, DataStax > http://datastax.com/ >