Моим первым предложением было бы не использовать RDD в Java.RDD в Java намного сложнее, чем в Scala, и это также старый API.Я бы предложил вместо этого использовать DataFrames.Они обеспечивают намного более чистый интерфейс между различными источниками данных, а также автоматическую оптимизацию и другие преимущества.
Теперь, если вы не можете использовать DataFrames, вместо этого просто сделайте CassandraJavaRDD, а затем используйте «withConnector» или «withReadConf» для измененияконфигурация чтения.
https://github.com/datastax/spark-cassandra-connector/blob/master/spark-cassandra-connector/src/main/java/com/datastax/spark/connector/japi/rdd/CassandraJavaRDD.java#L123-L129
Что-то вроде
val cluster2 = CassandraConnector eventsConnector =
CassandraConnector.apply(
sc.getConf()
.set("spark.cassandra.connection.host", "192.168.36.234"));
javaFunctions(sc).cassandraTable(ks, "test_table").withConnector(cluster2).collect()
}
Нет необходимости в компоновщике, поскольку сам RDD имеет свободный API.Поскольку запись происходит сразу после завершения звонка, ему нужен строитель.