将JavaPairRDD保存到Cassandra

时间:2017-06-19 20:45:41

标签: java apache-spark cassandra rdd spark-cassandra-connector

我试图将Spark创建的JavaPairRDD放入Cassandra。 JavaRDD有很多例子,但对于PairRDDs则没有那么多。

我的JavaPairRDD看起来像这样:

JavaPairRDD<String, List<Tuple<String, Long>>> pairs

我正在尝试保存到Cassandra表中,其列定义如下:

name TEXT PRIMARY KEY,
list LIST<TUPLE<STRING, LONG>>

我知道我可能不得不使用cassandra utils中的javaFunctions,但是我不确定语法,也不了解RowWriterFactory应该做什么。

1 个答案:

答案 0 :(得分:0)

JavaPairRDD包含Tuple2。您可以尝试下面的代码,但我不认为通用集合类型在CassandraJavaUtil.mapTupleToRow函数中作为类类型被支持,该函数返回RowWriterFactory。您可以在https://github.com/datastax/spark-cassandra-connector/blob/master/doc/7_java_api.md

找到mapTupleToRow的详细信息
javaFunctions(javaPairRDD).writerBuilder("cassandrakeyspace", "cassandratable", CassandraJavaUtil.mapTupleToRow(A.class, B.class)).saveToCassandra();