我试图将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应该做什么。
答案 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();