私はPythonのcassandraドライバを使って、カッサンドラのクラスタに接続してクエリを実行しています。パンダとカサンドラ:numpyの配列形式の非互換性
私はパンダを経由して自分のデータを操作したい、まさにこのことを言及カサンドラドライバのドキュメント内の領域があります: https://datastax.github.io/python-driver/api/cassandra/protocol.html
NumpyProtocolHander: deserializes results directly into NumPy arrays. This facilitates efficient integration with analysis toolkits such as Pandas.
上記の手順に従い、カサンドラでSELECTクエリを実行し、 Iとして出力(タイプビア()関数)を参照することができる:
:結果を反復<class 'cassandra.cluster.ResultSet'>
、これは何行を印刷するように立ち上がります
{u'reversals_rejected': array([0, 0]), u'revenue': array([ 0, 10]), u'reversals_revenue': array([0, 0]), u'rejected': array([3, 1]), u'impressions_positive': array([3, 3]), u'site_user_id': array([226226, 354608], dtype=int32), u'error': array([0, 0]), u'impressions_negative': array([0, 0]), u'accepted': array([0, 2])}
(私はクエリ結果を制限しました。私は大量のデータを扱うため、numpyとpandasを使いたいと思っています)。パンダの
私の知識は、私は非常に基本的な機能を実行しようとし、制限されています。
rslt = cassandraSession.execute("SELECT accepted FROM table")
test = rslt[["accepted"]].head(1)
これは、次のエラー出力:
Traceback (most recent call last):
File "/UserStats.py", line 27, in <module>
test = rslt[["accepted"]].head(1)
File "cassandra/cluster.py", line 3380, in cassandra.cluster.ResultSet.__getitem__ (cassandra/cluster.c:63998)
TypeError: list indices must be integers, not list
私はエラーを理解し、私は知りませんPandasを使うことができるようにするために、この想定されていない配列からどのように「移行するか」。
あなたの助けてくれてありがとう!私が最後に欠けていたのは、DataFrameのインデックスを指定することでした! – joao
'.bind([...])'括弧には何が入りますか? – yeliabsalohcin
@yeliabsalohcinこれは、クエリに送信する変数です。だからあなたの準備文でこのようなクエリがあった場合: "SELECT * FROM users WHERE user_id =?AND date =?"彼らは "?"を置き換えるでしょう。 – Tickon