我试图使用java类将cassandra表Map到sparkrdd,为此我面临一个问题,cassandra无法创建一个查询来获取数据。
根据这个链接https://github.com/datastax/spark-cassandra-connector/blob/master/doc/6_advanced_mapper.md,一个类必须是可序列化的,并且至少对要Map的表的主键列具有“getter”和“setters”。
所以我所做的是,我创建了一个java类,为每个字段创建了公共getter和setter,将该类Map到scala伴随对象,并在将数据检索到rdd时使用它Mapcassandra表。
我在图片链接中添加了代码。
java类
制图器
检索数据
例外
没有错误的scala类
当我使用scala类时,上面所有的工作都是无缝的
1条答案
按热度按时间elcex8rz1#
它在设计上不适合您—您提供的类没有表中的任何字段。mapper类分析pojo类,提取所有getter和setter,并使用它们查找数据库中字段的名称。Map器正在删除
get/set/is
方法名的前缀,方法名的其余部分小写,并将其用作字段名。您需要定义pojo类,使字段(和setter/getter)的格式至少与表主键的字段相同。