java - 使用 java 语言的 Spark cassandra 连接应该使用哪些版本?
问题描述
我正在尝试使用 Java 语言连接 spark 和 cassandra 数据库。为了连接 spark 和 cassandra,我使用的是最新版本的 Spark-cassandra-Connector,即 2.4.0。目前我可以使用连接器连接 spark 和 cassandra。我正在获取 RDD 格式的数据,但我无法从该数据结构中读取数据。如果我使用行阅读器工厂作为 cassandraTable() 的第三个参数,我会得到
> Wrong 3rd argument type. Found: > 'java.lang.Class<com.journaldev.sparkdemo.JohnnyDeppDetails>', > required: > 'com.datastax.spark.connector.rdd.reader.RowReaderFactory<T>'
谁能告诉我应该使用哪个版本或这里有什么问题?
CassandraTableScanJavaRDD 价格RDD2 = CassandraJavaUtil.javaFunctions(sc).cassandraTable(keyspace,table,JohnnyDeppDetails.class);
我的 pom.xml:
<!-- Import Spark -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector -->
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector-java_2.10</artifactId>
<version>1.5.0-M2</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.1.9</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>2.1.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>2.4.0</version>
</dependency>
</dependencies>
解决方案
而不是传递类实例,您需要RowReaderFactory
使用该mapRowTo
函数创建一个,如下所示(这是来自我的示例):
CassandraJavaRDD<UUIDData> uuids = javaFunctions(spark.sparkContext())
.cassandraTable("test", "utest", mapRowTo(UUIDData.class));
mapToRow
当您回信时,您可以通过函数将类转换为相应的工厂。
推荐阅读
- database - 在 2000 篇文章 sql 表中批量更新价格
- apache-poi - PowerPoint pptx 文件中的这些字体是什么?
- objective-c - 如何使用户位置以地图为中心但允许自由移动?
- c# - 获取 MethodBase.GetCurrentMethod() 但没有参数
- perl - 比较两个文件并使用 perl 从第一个文件写入匹配数据
- javascript - AngularJS | 卡片元素不访问详细信息视图的 API
- docker - google-cloud-datastore 在 docker 容器中的烧瓶应用程序中不起作用
- kiwi-tcms - django.db.migrations.exceptions.InconsistentMigrationHistory 错误作为 6.0.1 到 6.1 升级的一部分
- vb.net - 防止在`datagridview`中重复值时转到下一行
- html - div 和不透明度有问题