高效地解析从CassandraRDD获取的数据,并将其保存回Cassandra

高效地解析从CassandraRDD获取的数据,并将其保存回Cassandra,cassandra,datastax,Cassandra,Datastax,我是使用Java编程的新手。我在卡桑德拉德拿到了唱片 人员类别由id、姓名、状态、部门等组成。 根据dept,我需要将person的状态从默认的null更改为“randomValue”以及许多其他转换 我需要实现这个解析逻辑,然后将rdd保存回cassandra。 使用Map或mapPartitions或任何其他函数解析逻辑,这些函数将解析每个记录并创建RDD以将其保存回Cassandra CassandraRDD<Person> rdd = javaFunctions(ctx).c

我是使用Java编程的新手。我在卡桑德拉德拿到了唱片

人员类别由id、姓名、状态、部门等组成。 根据dept,我需要将person的状态从默认的null更改为“randomValue”以及许多其他转换

我需要实现这个解析逻辑,然后将rdd保存回cassandra。 使用Map或mapPartitions或任何其他函数解析逻辑,这些函数将解析每个记录并创建RDD以将其保存回Cassandra

CassandraRDD<Person> rdd = javaFunctions(ctx).cassandraTable("keyspace1", "person_table", mapRowTo(Person.class)).rdd();
System.out.println("RDD : " + rdd.count());  //Currently It returns 1000 i.e. all records from table
/*
     Parsing logic will go here which will generate 'parsed_rdd'
*/
javaFunctions(parsed_rdd).writerBuilder("keyspace1", "person_table",mapToRow(Person.class)).saveToCassandra();  //Save it back to cassandra
CassandraRDD rdd=javaFunctions(ctx).cassandraTable(“keyspace1”,“person_table”,mapRowTo(person.class)).rdd();
System.out.println(“RDD:+RDD.count())//目前它返回1000条,即表中的所有记录
/*
解析逻辑将出现在这里,它将生成“parsed\u rdd”
*/
javaFunctions(parsed_rdd).writerBuilder(“keyspace1”,“person_table”,mapToRow(person.class)).saveToCassandra()//把它还给卡桑德拉

谢谢。任何帮助都将不胜感激

请删除“SparkJava”标记,它与ApacheSpark无关,这会让人困惑。您到底需要解析什么?rdd已经包含解析的对象,正在努力理解您的问题。您是否正在寻找一种方法来修改每个人的状态列的值?表定义可能会有所帮助。