2017-01-02 1 views
1

В настоящее время я работаю над sparklyr, и я пытаюсь создать новое пространство ключей в Cassandra. Это вообще возможно? Если да, то как?Как создать пространство ключей и таблицу в кассандре с помощью R?

Я пытался ниже выражение:

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

Там нет SQL Command в Спарк SQL для создания новых таблиц Кассандры или Keyspaces. Spark Sql способен создавать или уничтожать метаданные, относящиеся к таблицам Cassandra, которые уже существуют. Чтобы создать новые таблицы, вам нужно использовать пользовательский DataFrame Apis, добавленный в Scala/Java.

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

Dataframe Docs

В основном это означает, что вы должны сделать какой-то кросс языка вызова Java из R. Я не знаю, какой-либо простой способ сделать это, и я бы рекомендовал просто Призывая любой из драйверов Cassandra с поддерживаемого языка. Например, просто используя Python и драйвер python.

Смежные вопросы