2017-06-19 126 views
0

我試圖把一個Spark創建的JavaPairRDD放到Cassandra中。 JavaRDD有很多例子,但對於PairRDD並沒有太多例子。保存JavaPairRDD到Cassandra

我JavaPairRDD看起來是這樣的:

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

,我試圖保存到卡桑德拉表中定義的列如下:

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

我知道我可能將不得不使用javaFunctions來自cassandra utils,但是我不確定語法,也不理解RowWriterFactory應該做什麼。

回答

0

JavaPairRDD包含Tuple2。您可以嘗試下面的代碼,但我不認爲泛型集合類型支持CassandraJavaUtil.mapTupleToRow函數中的類類型,該函數返回RowWriterFactory。你可以找到mapTupleToRow的詳細信息,在https://github.com/datastax/spark-cassandra-connector/blob/master/doc/7_java_api.md

javaFunctions(javaPairRDD).writerBuilder("cassandrakeyspace", "cassandratable", CassandraJavaUtil.mapTupleToRow(A.class, B.class)).saveToCassandra();