2016-08-31 19 views
0

私はScalaとApache Sparkの初心者です。私は以下の問題に直面しています。Cassandraにデータを挿入するためのSpark SQL

spark SQLを使用して、Cassandraテーブル..user(name、favorite_food)にデータを挿入しようとしています。 [1.13]失敗:

は、コードスニペットは、私が「メイン」java.lang.RuntimeExceptionスレッドで問題 例外に直面しているが、この

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')") 

のように見える ``表「」期待されるが、識別子のユーザーが見つかりました。

私は

私の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> 
のように見えるカサンドラDBのローカルインスタンスを実行しています

私の質問は、 私はなぜ以下のエラーに直面しているのか教えてください。(insert文は、cassandraシェルで完璧に機能します) スレッド "main"の例外java.lang.RuntimeException:[1.13]失敗: `` table ''識別子ユーザが見つかりました

PS:データストアで提供されているスパークコネクタを使用してCassandraにデータを保存できますが、Spark SQLを使用したいのですが可能ですか?

+0

を作品になることをしようとします動作します – RussS

答えて

1

Cassandra Contextを使用してテーブルにデータを挿入することはできません。スパークはそのオプションを提供していません。

あなたはこのそれは間違いなく、私はそれが `` user`が予約語である、あなたはそれを引用する場合は、 `「ユーザー」を賭けている、

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"、 "brownies") として記載されていますので、値のリストがあり、 "John Doe"、 "brownies"などのハードコーディングではなく、そしてcassandraに保存する –

関連する問題