You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:24:30