猿问

为什么我们不在 Spark-Cassandra-Connector 中定义一个

我看到了 spark-cassandra-connector 的 github repo,我没有发现 ReaderBuilder 实现了它们,但是 WriterBuilder 实现了,任何人都可以帮助我,因为我想使用 CassandraConnector 引用从 cassandra DB 读取数据。

我想在同一个 SparkContext 中连接两个 cassandra 集群,我想从它们两个读取数据,所以我需要一个 ReaderBuilder 来从我的第二个 cassandra 集群读取数据,我在这里也使用 java 语言。

Github 回购链接:https ://github.com/datastax/spark-cassandra-connector/blob/master/spark-cassandra-connector/src/main/java/com/datastax/spark/connector/japi/RDDAndDStreamCommonJavaFunctions.java

CassandraConnector eventsConnector = CassandraConnector.apply(sc.getConf().set("spark.cassandra.connection.host", "192.168.36.234"));



潇湘沐
浏览 153回答 1
1回答

茅侃侃

我的第一个建议是不要在 Java 中使用 RDD。Java 中的 RDD 比 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。由于写入是在调用结束时立即发生的,因此它需要一个构建器。
随时随地看视频慕课网APP

相关分类

Java
我要回答