【发布时间】:2016-03-22 03:02:01
【问题描述】:
我想将数据从 spark RDD 保存到 cassandra 表。我正在为 java 使用 spark-cassandra-connector https://github.com/datastax/spark-cassandra-connector
按照文档保存的代码
rddJavaFunctions.writerBuilder("populartweets", "stream_tag_count",
CassandraJavaUtil.mapToRow(Tag.class)).withColumnSelector(CassandraJavaUtil.someColumns("tag","count"))
.saveToCassandra();
执行此操作后出现错误
New Cassandra host /127.0.0.1:9042 added
15/12/16 10:18:06 INFO CassandraConnector: Connected to Cassandra cluster: Test Cluster
Exception in thread "main" java.util.NoSuchElementException: key not found: 'text'
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:58)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:58)
at com.datastax.spark.connector.types.ColumnType$.fromDriverType(ColumnType.scala:81)
at com.datastax.spark.connector.cql.ColumnDef$.apply(Schema.scala:117)
at com.datastax.spark.connector.cql.Schema$$anonfun$com$datastax$spark$connector$cql$Schema$$fetchPartitionKey$1.apply(Schema.scala:199)
at com.datastax.spark.connector.cql.Schema$$anonfun$com$datastax$spark$connector$cql$Schema$$fetchPartitionKey$1.apply(Schema.scala:198)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
我正在使用 spark 1.5.2
【问题讨论】:
-
您好,您解决了吗?我对 cassandra 3.0 和 spark-connector 1.5.0-M3 有类似的错误
-
尚未解决...改为使用 cassandra 的基本插入语句
-
通过降级到 C* 2.2.4 解决了这个问题 :)
标签: java cassandra spark-streaming twitter-streaming-api spark-cassandra-connector