无法在spark-cassandra-connector中使用java类进行映射

问题描述 投票:0回答:1

我正在尝试使用java类将cassandra表映射到spark rdd,为此我遇到了cassandra无法创建查询来获取数据的问题。

根据这个链接https://github.com/datastax/spark-cassandra-connector/blob/master/doc/6_advanced_mapper.md,一个类必须是可序列化的,并且至少为你想要映射的表的主键列设置'getters'和'setters'。

所以我所做的是,我创建了一个java类,为每个字段创建了公共getter和setter,将类映射到scala伴随对象,并将其用于映射cassandra表,同时将数据检索到rdd中。

我在图片链接中添加了代码。

  1. Java class
  2. Mapper
  3. Retrieving data
  4. Exception
  5. Scala classes which give no error

当我使用scala类时,以上所有内容都可以无缝地工作

cassandra-3.0 spark-cassandra-connector
1个回答
0
投票

它不适合您的设计 - 您提供的类没有您表中的任何字段。 mapper类分析您的POJO类并提取所有getter和setter,并使用它们来查找数据库中字段的名称。 mapper正在从方法名称中删除get/set/is前缀,并将方法名称的其余部分小写并将其用作字段名称。

您需要定义POJO类,使字段(和setter / getters)格式最少为表的主键字段。

© www.soinside.com 2019 - 2024. All rights reserved.