当前位置: 首页 > 知识库问答 >
问题:

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

赵飞语
2023-03-14

我看到了spark-cassandra-connector的github repo,我没有发现ReaderBuilder实现了它们,但实现了一个WriterBuilder,有人可以帮助我使用CassandraConnector引用从cassandra DB读取数据吗。

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

Github repo链接: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"));

共有1个答案

楚骞尧
2023-03-14

我的第一个建议是不要在Java中使用RDDs。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。由于编写是在调用结束后立即进行的,因此需要一个构建器。

 类似资料:
  • 我在让Spark Cassandra连接器在Scala中工作时遇到问题。 我正在使用这些版本: 斯卡拉 2.10.4 火花芯 1.0.2 卡桑德拉-节俭 2.1.0 (我安装的卡桑德拉是 v2.1.0) cassandra-clientutil 2.1.0 卡桑德拉驱动器核心 2.0.4 (推荐用于连接器? 火花-卡桑德拉-连接器 1.0.0 我可以连接并与卡桑德拉(没有火花)交谈,我可以与火花(

  • 本文向大家介绍为什么我们需要一个数据库,包括了为什么我们需要一个数据库的使用技巧和注意事项,需要的朋友参考一下 数据库是数据的集合,通常以电子形式存储。数据库的设计通常是为了使其易于存储和访问信息。 好的数据库对任何公司或组织都至关重要。这是因为数据库存储了有关公司的所有相关详细信息,例如员工记录,交易记录,工资详细信息等。 数据库重要的各种原因是- 管理大量数据 数据库每天存储和管理大量数据。使

  • 如何为版本设置以下属性: 本质上,我想设置它,以便应该有0个连接到我的远程dc的客户端,也应该有0个读/写。一切都应该是我正在磨合的DC本地的。 将设置为本地DC是否会达到相同的效果?

  • 我有一个Cassandra节点集群,每个节点机器上都有Spark worker。对于通信,我使用Datastax Spark-Cassasndra连接器。Datastax连接器是否对同一台机器中的工作人员从Cassandra节点读取数据进行了优化,或者在机器之间存在一些数据流?

  • 10凯瑟琳 我在本地运行start-all.sh启动了Spark 然后我创建了这个类“SparkCassandraconnector”,它有一个连接spark和Cassandra的命令。

  • 命令用于从Cassandra表中读取数据。 您可以使用此命令读取整个表,单个列,特定单元格等等。 语法 示例: 下面举个例子来演示如何从Cassandra表中读取数据。 我们有一个名为“”的表和以下列(,,)。 使用SELECT命令读整个表 执行结果如下 - 读取特定列 - 该示例将从表中只读和列的数据。 使用WHERE子句 WHERE子句与SELECT命令一起使用,以指定必须满足获取数据的确切条