2016-09-15 2 views
0

私はPattern 1で作業していましたが、Pythonなどで、同じIDを持つすべての行を辞書付きの行に「集める」方法があるのだろうかと思っていました。Cassandra/Pythonで同じキーの下に行を集める

CREATE TABLE temperature (
       weatherstation_id text, 
       event_time timestamp, 
       temperature text, 
       PRIMARY KEY (weatherstation_id,event_time) 
       ); 

いくつかのデータを挿入し

INSERT INTO temperature(weatherstation_id,event_time,temperature) 
       VALUES ('1234ABCD','2013-04-03 07:01:00','72F'); 
INSERT INTO temperature(weatherstation_id,event_time,temperature) 
       VALUES ('1234ABCD','2013-04-03 07:02:00','73F'); 
INSERT INTO temperature(weatherstation_id,event_time,temperature) 
       VALUES ('1234ABCD','2013-04-03 07:03:00','73F'); 
INSERT INTO temperature(weatherstation_id,event_time,temperature) 
       VALUES ('1234ABCD','2013-04-03 07:04:00','74F'); 

クエリのデータベース。

SELECT weatherstation_id,event_time,temperature 
       FROM temperature 
       WHERE weatherstation_id='1234ABCD'; 

結果:

weatherstation_id | event_time    | temperature 
-------------------+--------------------------+------------- 
      1234ABCD | 2013-04-03 06:01:00+0000 |   72F 
      1234ABCD | 2013-04-03 06:02:00+0000 |   73F 
      1234ABCD | 2013-04-03 06:03:00+0000 |   73F 
      1234ABCD | 2013-04-03 06:04:00+0000 |   74F 

動作しますが、私はweatherstationidあたりの行にこれを回すことができる場合、私は思っていました。

など。

{ 
"weatherstationid": "1234ABCD", 
"2013-04-03 06:01:00+0000": "72F", 
"2013-04-03 06:02:00+0000": "73F", 
"2013-04-03 06:03:00+0000": "73F", 
"2013-04-03 06:04:00+0000": "74F" 
} 

特定のID(weatherstationid)によって収集し、辞書に他のすべてをオンに指定することができカサンドラドライバで、いくつかのパラメータがありますか?あるいは、IDリスト(またはIDセット)ごとに行のリストを単一の行にするには、Pythonの魔法が必要ですか?

答えて

1

アレックス、あなたはこのフォーマットを得るためにいくつかのポスト実行データ処理を行う必要があります。ドライバは、使用するrow_factoryに関係なく、行ごとに戻ります。

ドライバーが提案するフォーマットを達成できない理由の1つは、内部的に関与するページネーションがあることです(デフォルトのfetch_sizeは5000です)。その結果、あなたの方法は部分的または不完全である可能性があります。さらに、これは、クエリの実行が完了し、必要なすべての結果がフェッチされたことを確認したときにPythonで簡単に実行できます。

+0

私はそれが事実だろうと考えましたが、どこでもこれを見ることができませんでした。 – Alex

関連する問題