gpt4 book ai didi

java - 为什么我们不在 Spark-Cassandra-Connector 中定义一个 ReaderBuilder 来从 cassandra DB 读取数据

转载 作者:行者123 更新时间:2023-11-30 05:38:24 25 4
gpt4 key购买 nike

我看到了 Spark-cassandra-connector 的 github 存储库,我没有发现 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"));

最佳答案

我的第一个建议是不要在 Java 中使用 RDD。 Java 中的 RDD 比 Scala 中的要困难得多,而且它也是旧的 api。我建议使用 DataFrames 代替。这些在不同数据源之间提供了更清晰的接口(interface)以及自动优化和其他好处。

现在,如果您无法使用 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。由于写入是在调用结束后立即发生的,因此需要一个构建器。

关于java - 为什么我们不在 Spark-Cassandra-Connector 中定义一个 ReaderBuilder 来从 cassandra DB 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56185285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com