Cassandra kümemizi bağlamak ve sorgulamak için Python cassandra sürücüsünü kullanıyorum. , https://datastax.github.io/python-driver/api/cassandra/protocol.htmlPandalar ve Cassandra: sayı dizisi uyumsuzluğu
NumpyProtocolHander: deserializes results directly into NumPy arrays. This facilitates efficient integration with analysis toolkits such as Pandas.
yukarıdaki talimatlara takip etmek ve Cassandra'ya bir SELECT sorgusu yapıyor:
Ben Pandalar aracılığıyla benim verileri işlemek istiyorum, bu tam bahseder cassandra sürücü için belgelerinde bir alan vardır bir şekilde (tip() fonksiyonu ile) çıkışını görebilirsiniz:
: sonuçlar arasında<class 'cassandra.cluster.ResultSet'>
yineleme, bu nedir bir satır baskı olarak çıkageldi
{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])}
(Sorgu sonuçlarını sınırlandırdım, çok daha büyük miktarda veriyle çalışıyorum - bu nedenle numpy ve pandaları kullanmak istiyorum).
Pandalar bilgilerim, ben çok temel işlevleri çalıştırmak girişiminde sınırlıdır:
rslt = cassandraSession.execute("SELECT accepted FROM table")
test = rslt[["accepted"]].head(1)
Bu, aşağıdaki hatayı verir: Ben hatasını anladıktan
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
, sadece bilmiyorum Bu sözde numpy dizisinden Pandaları kullanabilmek için "geçiş".
Yardımlarınız için teşekkürler! DataFrame için dizinin belirtilmesi sonunda eksik olduğum şeydi! – joao
'.bind ([...]) köşeli parantezler içinde ne var? – yeliabsalohcin
@yeliabsalohcin Sorguya göndermek istediğiniz değişkenler. Eğer hazırlamış olduğunuz ifadede böyle bir sorguya sahip olsaydınız: "SELECT * FROM kullanıcılarından WHERE user_id =? AND date =?" "?" yerini alacaklardı. – Tickon