質問

基本的には、これを尋ねています。質問しかし、Python Cassandra Library、Pycassa。

このようなデータを格納する合成タイプがあるとしましょう。

[20120228:finalscore] = '31-17'
[20120228:halftimescore]= '17-17'
[20120221:finalscore] = '3-14'
[20120221:halftimescore]= '3-0'
[20120216:finalscore] = '54-0'
[20120216:halftimescore]= '42-0'
.

だから、私は複合タイプの最初の部分から簡単にスライスすることができます。

>>> cf.get('1234', column_start('20120216',), column_finish('20120221',))
OrderedDict([((u'20120216', u'finalscore'), u'54-0'),
((u'20120216', u'halftimescore'), u'42-0')])
.

しかし、私がFinalScoreだけが欲しいのなら、私はできると思います:

>>> cf.get('1234', column_start('20120216', 'finalscore'),
column_finish('20120221', 'finalscore'))
.

GET:

OrderedDict([((u'20120216', u'finalscore'), u'54-0')])
.

しかし代わりに、私は得る:

OrderedDict([((u'20120216', u'finalscore'), u'54-0'),
((u'20120216', u'halftimescore'), u'42-0')])
.

第1コールと同じです。

私は何か悪いことをしていますか?この仕事は?またはcf.get(...列= [( '20120216'、 'finalscore')])を使用していくつかの構文がありますか?私もそれを試してみて例外を得ました。

http://www.datastax .com / dev / blog /紹介 - コンポジット - 列-Part-1 、私はこのようなことをすることができるはずです...

ありがとう

役に立ちましたか?

解決

If know all the components of the composite column then you should the 'columns' option:

cf.get('1234', columns=[('20120216', 'finalscore')])

You said you got an error trying to do this, but I would suggest trying again. It works fine for me.

When you are slicing composite columns you need to think about how they are sorted. Composite columns sort starting first with the left most component, and then sorting each component toward the right. So In your example the columns would look like this:

+------------+---------------+------------+---------------+------------+----------------+
| 20120216   | 20120216      | 20120221   | 20120221      | 20120228   | 20120228       |
| finalscore | halftimescore | finalscore | halftimescore | finalscore | halftimescore  |
+------------+---------------+------------+---------------+------------+----------------+

Thus when you slice from ('20120216', 'finalscore') to ('20120221', 'finalscore') you get both values for '20120216'. To make your query work as you want it to you could change the column_finish to ('20120216', 'halftimescore').

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top