如何使用RCassandra访问Cassandra表中的数据

时间:2016-03-31 15:30:16

标签: r cassandra rc

我需要在表Cassandra数据库的列中获取数据。我正在使用RCassandra。获取数据后,我需要对其进行一些文本挖掘。请建议我如何连接到cassandra,并使用RCassandra将数据导入我的R脚本

我的标准:

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)

这会将输出打印为:

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

144 BBC News
158 IBN Live
123  Reuters
131 IBN Live

但是我的cassandra表包含四列,但这里只显示了一列。我需要将每个列的值分开。那么我如何获得单个列值(Eg.each feedurl)我应该在R脚本中做出哪些更改?

My cassandra table, named sourcetable

2 个答案:

答案 0 :(得分:0)

我使用Cassandra和R使用正确的Cran Jar文件,但RCassandra更容易。 RCassandra是Cassandra的直接接口,不使用Java。要连接到Cassandra,您将使用RC.connect返回这样的连接句柄。

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

然后,您可以使用RC.get命令检索数据,或使用RC.ReadTable命令读取表数据。

但是,首先你应该阅读THIS

答案 1 :(得分:0)

我也很困惑。表demo.emp有4行和4列(empid,deptid,first_name和last_name)。 RC.get和RC.read.table都没有获取所有数据。

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