2017-01-02 48 views
1

我目前正在研究sparklyr,並試圖在Cassandra中創建一個新的密鑰空間。它有可能嗎?如果是這樣,怎麼樣?如何使用R在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沒有SQL命令來創建新的卡桑德拉表或Keyspaces。 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

這基本上意味着你必須做一些類型的Java的跨語言調用從R.我不知道有什麼簡單的方法來做到這一點,我會建議只是調用來自支持語言的任何Cassandra驅動程序。例如只使用Python和python驅動程序。

相關問題