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

时间:2017-01-02 10:44:27

标签: r cassandra apache-spark-sql sparkr

我目前正在研究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 个答案:

答案 0 :(得分:1)

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

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驱动程序。