2016-08-31 109 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 –

相关问题