如何使用 R 在 cassandra 中创建键空间和表?

Posted

技术标签:

【中文标题】如何使用 R 在 cassandra 中创建键空间和表?【英文标题】:How to create a keyspace and table in cassandra using R? 【发布时间】:2017-01-02 10:44:26 【问题描述】:

我目前正在研究 sparklyr,我正在尝试在 Cassandra 中创建一个新的键空间。有可能吗?如果有,怎么做?

我正在尝试以下表达式:

sql(sqlContext, "CREATE KEYSPACE key1 WITH REPLICATION = 'class': 'SimpleStrategy', 'replication_factor': 1 ")

但结果我得到了错误:

  Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) : 
  java.lang.RuntimeException: [1.1] failure: ``with'' expected but identifier CREATE found

【问题讨论】:

【参考方案1】:

Spark SQL 中没有用于创建新 Cassandra 表或键空间的 SQL 命令。 Spark Sql 只能创建或销毁与已存在的 Cassandra 表相关的元数据。要创建新表,您需要使用在 Scala/Java 中添加的自定义 DataFrame API。

val renamed = df.withColumnRenamed("col1", "newcolumnname")
renamed.createCassandraTable(
    "test", 
    "renamed", 
    partitionKeyColumns = Some(Seq("user")), 
    clusteringKeyColumns = Some(Seq("newcolumnname")))

Dataframe Docs

这基本上意味着您必须从 R 中对 Java 进行某种跨语言调用。我不知道有什么简单的方法可以做到这一点,我建议您只从支持的语言中调用任何 Cassandra 驱动程序.例如仅使用 Python 和 python 驱动程序。

【讨论】:

以上是关于如何使用 R 在 cassandra 中创建键空间和表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从一系列字典中创建键和值的数据框[重复]

有没有办法在 Bash 脚本中创建键值对?

带有 object.assign 的 Redux reducer 在同名的顶部键中创建键

根据指定的键从集合中创建键值对集合

在Cassandra中创建表和创建列家族有什么区别?

单个 cassandra 节点上的 NetworkTopologyStrategy