RCassandra 尝试存储“iris”数据集的奇怪错误

Posted

技术标签:

【中文标题】RCassandra 尝试存储“iris”数据集的奇怪错误【英文标题】:strange error with RCassandra trying to store the "iris" dataset 【发布时间】:2014-12-18 13:35:34 【问题描述】:

我是 Apache Cassandra 的新手。我安装了 R 扩展 RCassandra 并创建了下表:

CREATE TABLE iris (
    id varchar, 
    "Sepal.Length" double, 
    "Sepal.Width" double, 
    "Petal.Length" double, 
    "Petal.Width" double, 
    Species text, 
    PRIMARY KEY(id)
);

成功连接并选择键空间后,我尝试以下操作:

> RC.write.table(c,'iris',iris)

iris 数据集具有以下形式:

> iris
     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
4            4.6         3.1          1.5         0.2     setosa
...

但我收到以下错误:

Error in RC.write.table(c, "iris", iris) : 
    Cassandra exception: Not enough bytes to read value of component 0

可能id 字段比较麻烦,所以我通过在数据框中添加id 列来创建以下数据集:

iris2 = data.frame(id=row.names(iris),iris)

iris2
     id Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1     1          5.1         3.5          1.4         0.2     setosa
2     2          4.9         3.0          1.4         0.2     setosa
3     3          4.7         3.2          1.3         0.2     setosa
4     4          4.6         3.1          1.5         0.2     setosa
...

但我仍然遇到同样的错误:

> RC.write.table(c,'iris',iris2)
Error in RC.write.table(c, "iris", iris2) : 
  Cassandra exception: Not enough bytes to read value of component 0

关于如何解决这个问题的任何想法?

【问题讨论】:

我没有使用过 RCassandra,但你可以尝试更改列名来避免句点,例如萼片长度-> 萼片长度。我知道其他一些工具有这方面的问题,甚至认为它在 CQL/Cassandra 中在技术上是有效的。 【参考方案1】:

您是否使用 CQLSH 在 Cassandra 中创建列族(“表”)?我自己有没有同样的问题。然后切换到使用 cassandra-cli 并创建列族 this way,并且它起作用了。

RCassandra 很可能在下面使用 cli,并且因为在 CQLSH 中创建的 CF 在 cassandra-cli 中不可见,所以它看不到 CQL 表。

【讨论】:

我不再使用RCassandra,因为它已经过时(与以前版本的 Cassandra 兼容)。现在我使用rJava/DBI/RJDBC,一切正常。然后,当然,列名需要保守地小写并且没有奇怪的字符,如点

以上是关于RCassandra 尝试存储“iris”数据集的奇怪错误的主要内容,如果未能解决你的问题,请参考以下文章

基于 Iris 数据集的 Python 模糊聚类

鸢尾花数据集的多类分类

85使用TFLearn实现iris数据集的分类

关于IRIS数据集的Python分析-一份带注释的代码

做一个logitic分类之鸢尾花数据集的分类

用tensorflow搭建简单神经网络测试iris 数据集和MNIST 数据集