2016-08-31 163 views
0

我是Scala和Apache Spark的初學者,我面臨着下面的問題。Spark將數據插入Cassandra

我正在嘗試使用spark SQL將數據插入Cassandra表..user(name,favorite_food)。

的代碼片段看起來是這樣的

val conf = new SparkConf(true) 
    .set("spark.cassandra.connection.host", "127.0.0.1") 

val sc = new SparkContext("local", "test", conf) 
val sqlC = new CassandraSQLContext(sc) 
sqlC.setKeyspace("myKeySpace") 
sqlC.sql("INSERT into user (name,favorite_food) values ('John Doe','brownies')") 

但是我面對的課題 異常在線程「主」了java.lang.RuntimeException:[1.13]失敗:``表',但卻標識用戶發現

我運行卡桑德拉DB的本地實例

我的Maven POM看起來像

<dependencies> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.10</artifactId> 
      <version>1.6.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-sql_2.10</artifactId> 
      <version>1.6.2</version> 
     </dependency> 
</dependencies> 

我的問題是; 請你可以告訴我爲什麼我要面對下面的錯誤(insert語句在cassandra shell中工作得很好) 線程「main」中的異常java.lang.RuntimeException:[1.13] failure:``table''expected但是標識符用戶發現

PS:我知道我可以使用由datastax提供的spark連接器將數據保存到Cassandra,但是我想使用Spark SQL ...可能嗎?

+0

我打賭'user'是保留字,如果你引用它'「用戶」'它可能工作 – RussS

回答

1

我們不能使用Cassandra上下文向表中插入數據。 Spark不提供該選項。

你會嘗試這一點,肯定會工作,

import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
import com.datastax.spark.connector._ 
import com.datastax.spark.connector.UDTValue 

//we need define a class 
//case class name(column name: datatype,column name: datatype) 

case class model(name: String, favorite_food: String) 

// define sequence to insert a data 
// val coll = sc.parallelize(Seq(classname(data, data), model(data, data))) 

val collection = sc.parallelize(Seq(model("John Doe", "brownies"))) 

//then save to cassandra 
//collection.saveToCassandra("keyspace_name", "table_name", SomeColumns("col name", "col name")) 

collection.saveToCassandra("myKeySpace", "user", SomeColumns("name", "favorite_food")) 

感謝, Aravinth

+0

在上面的例子中,你提到 模型(「John Doe」,「布朗尼」) 所以我應該怎麼做,如果我有值的列表和動態創建模型,而不是硬編碼像「John Doe」,「布朗尼」並保存到cassandra –

相關問題