基本的にはthis questionと同じものを求めていますが、Python CassandraライブラリのPyCassaについては質問しています。Pycassa:複合型の一部を照会する方法
は、あなたがこのようなデータを格納する複合型を考えてみましょう:
>>> cf.get('1234', column_start('20120216',), column_finish('20120221',))
OrderedDict([((u'20120216', u'finalscore'), u'54-0'),
((u'20120216', u'halftimescore'), u'42-0')])
を:
[20120228:finalscore] = '31-17'
[20120228:halftimescore]= '17-17'
[20120221:finalscore] = '3-14'
[20120221:halftimescore]= '3-0'
[20120216:finalscore] = '54-0'
[20120216:halftimescore]= '42-0'
だから、私は簡単に行って、複合型の最初の部分のオフに基づいてスライスすることができます知っています
しかし、私は唯一のfinalscoreをしたい場合、私は何ができると仮定します:
>>> cf.get('1234', column_start('20120216', 'finalscore'),
column_finish('20120221', 'finalscore'))
を取得するには:
OrderedDict([((u'20120216', u'finalscore'), u'54-0')])
しかし、その代わりに、私が取得する:第1回の呼び出しなど
OrderedDict([((u'20120216', u'finalscore'), u'54-0'),
((u'20120216', u'halftimescore'), u'42-0')])
は同じ。
何か間違っていますか?これはうまくいくはずですか?または、cf.get(... columns = [( '20120216'、 'finalscore')])を使用していくつかの構文がありますか?私もそれを試して例外があります。
http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1によると、私はこのような何かを行うことができるはず...
おかげ
あなたはcf.get()コールを正しく実行しているので、正しく動作します。間違った型を入力したことがあります。 – stantonk
しかし、私の質問の2番目の部分については、私が実際に探しているのはPycassaの部分合成を照会する方法なので、私の例は少し貧しいと思います。 明らかに、HectorとPycassaの両方で、部分複合型を使用してスライスクエリを実行できます。 cf.get( '1234'、column_start =( '20120216'、)、column_finish =( '20120221'、 )) しかし、私は部分複合を使用してcf.get()を実行しようとするとエラーが発生します。それはカサンドラでは不可能ですか? – stantonk
部分的なコンポジットはスライスにのみ使用できます。 getを使用するときは、必要な列の完全な名前を知る必要があります。 – psanford