Spark 3.5.6无法识别无前缀Getter/Setter方法的解决方案咨询
Spark 3.5.6无法识别无前缀Getter/Setter方法的解决方案咨询
最近我把业务代码里的Getter/Setter方法风格改了——去掉了get/set前缀,同时把Setter改成了链式(流畅)调用的形式。举个具体的例子:
针对枚举类型成员private NatureJuridiqueGroupement natureJuridique;,原来的写法是:
public NatureJuridiqueGroupement getNatureJuridique() { return this.natureJuridique; } public void setNatureJuridique(NatureJuridiqueGroupement natureJuridique) { this.natureJuridique = natureJuridique; }
现在改成了无前缀+链式Setter的版本:
public NatureJuridiqueGroupement natureJuridique() { return this.natureJuridique; } @SuppressWarnings("unchecked") public SELF natureJuridique(NatureJuridiqueGroupement natureJuridique) { this.natureJuridique = natureJuridique; return (SELF)this; }
但现在遇到了一个棘手的问题:我有一个Groupement实体类,包含这些成员:interdepartemental、zoneDeMontagne、gestionDesEaux、natureJuridique、fiscalitePropre、siren。对应的Getter方法分为两类:
- 无前缀:
interdepartemental()、zoneDeMontagne()、gestionDesEaux()、natureJuridique() - 带标准前缀:
getNatureJuridique()、isFiscalitePropre()
当我在Spark 3.5.6中运行以下Spark代码时:
Dataset<Groupement> perimetres = myBuildingMethod(/* 我的参数 */); perimetres.show(2000, false);
show()输出的结果完全忽略了那些无前缀Getter对应的字段,只显示了能识别的列:
fiscalitePropre natureJuridique siren false SYNDICAT_MIXTE_FERME 200004000 false SYNDICAT_MIXTE_FERME 200004000 true COMMUNAUTE_AGGLOMERATION 200010700 true COMMUNAUTE_AGGLOMERATION 200010700
目前我的代码还能正常运行,是因为Groupement对象是通过编码器调用构造器创建的,不是通过Setter调用的,但Spark无法识别无前缀Getter的问题导致这些字段无法在Dataset中显示出来。
我想请教各位:有没有办法配置Spark或者通过其他方式,让它自动识别这种无前缀的Getter/Setter方法?我真的不想再改回原来带get/set前缀的代码风格了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

