2016-03-31 30 views
1

'u kullanarak Cassandra Tablosundaki verilere nasıl erişebilirim? Veri Tabanı Cassandra Veri Tabanı'nın bir sütununda almam gerekir. Bunun için RCassandra'yı kullanıyorum. Verileri aldıktan sonra bir metin madenciliği yapmam gerekiyor. RCassandra

Benim RScript cassandra bağlanmak ve RCassandra

kullanarak R Komut veri alabilirim bana nasıl önermek edin:

> print(ncol(sourcetable)) 
[1] 1 
> print(nrow(sourcetable)) 
[1] 18 
> print(sourcetable) 

144 BBC News 
158 IBN Live 
123 Reuters 
131 IBN Live 

Ama cassandra:

library(RCassandra) 
connect.handle <- RC.connect(host="127.0.0.1", port=9160) 
RC.cluster.name(connect.handle) 
RC.use(connect.handle, 'mykeyspace') 

sourcetable <- RC.read.table(connect.handle, "sourcetable") 
print(ncol(sourcetable)) 
print(nrow(sourcetable)) 
print(sourcetable) 

Bu şekilde çıktı yazdırır tablo dört sütun içerir, ancak burada sadece 1 sütun gösteriliyor. Her sütun değerini ayırmam gerekiyor. Öyleyse bireysel sütun değerlerini nasıl alabilirim (Eg.each feedurl) R betiğimde hangi değişiklikleri yapmalıyım?

My cassandra table, named sourcetable

+0

Lütfen gönderinizi düzenleyin ve yürütmeye çalıştığınız R kodunu ekleyin. – apesa

cevap

0

Doğru Cran Kavanoz dosyaları ile Cassandra ve Ar kullandık ama RCassandra daha kolaydır. RCassandra, Java kullanmadan Cassandra'ya doğrudan bir arayüzdür. Cassandra'ya bağlanmak için, böyle bir bağlantı kolunu döndürmek için RC.connect'i kullanacaksınız.

RC.connect(host = <xxx>, port = <xxx>) 
RC.login(conn, username = "bar", password = "foo") 

Daha sonra tablo veri okumak veri veya RC.ReadTable komutu almak için bir RC.get komutunu kullanabilirsiniz.

ANCAK, Önce ben de karıştı THIS

+0

Ancak, RC.read.table kullanırken, ncol = 1 ile çıktı olarak bir veri çerçevesi alıyorum. Cassandra veritabanı tablomda 4 sütun var ve bunlardan sadece ikisi tek bir sütun olarak bu veri çerçevesinde gösteriliyor. Neden böyle oluyor? Ayrıca, RC.get kullanıyorum, ilgili tablodaki satırların listesini alacağım. Ama her sütun değerini nasıl alabilirim? Burada tamamen kafam karıştı! –

0

okumalısınız. Tablo demo.emp 4 satır ve 4 sütun (empid, deptid, first_name ve last_name) var. Ne RC.get ne de RC.read.table tüm verileri alır.

cqlsh:demo> select * from emp; 

empid | deptid | first_name | last_name 
-------+--------+------------+----------- 
1 |  1 |  John |  Doe 
1 |  2 |  Mia |  Lewis 
2 |  1 |  Jean |  Doe 
2 |  2 |  Manny |  Lewis 

> RC.get.range.slices(c, "emp", limit=10) 
[[1]] 
key value   ts 
1   1.474796e+15 
2  John 1.474796e+15 
3  Doe 1.474796e+15 
4   1.474796e+15 
5  Mia 1.474796e+15 

[[2]] 
key value   ts 
1   1.474796e+15 
2  Jean 1.474796e+15 
3  Doe 1.474796e+15 
4   1.474796e+15 
5  Manny 1.474796e+15