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

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

凌和颂
2023-03-14

我正在尝试使用java类来映射cassandra表以触发rdd,为此我面临一个问题,即cassandra无法创建查询来获取数据。

根据这个链接https://github.com/datastax/spark-cassandra-connector/blob/master/doc/6_advanced_mapper.md,类必须是可序列化的,并且至少对要映射的表的主键列具有“getter”和“setter”。

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

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

    < li>Java类 < li >映射器 < li >正在检索数据 < li >例外情况 < li >没有错误的Scala类

当我使用scala类时,上述所有这些都可以无缝地工作

共有1个答案

景才英
2023-03-14

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

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

 类似资料: