错误参数“male”:org.apache.hadoop.hive.ql.metadata.hiveexception | hiveudf中的drools会话

nnsrf1az  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(284)

我正尝试使用下面的代码在evaluate方法中开发一个带有drools规则引擎调用的udf:

Person person = new Person(gender);

    KieServiceSerializer kszObj = new KieServiceSerializer();

    KieServices ks = kszObj.getKieServices();
    KieContainer kContainer = ks.getKieClasspathContainer();
    KieSession kSession = kContainer.newKieSession("ksession-rules");   //this line is causing error: Wrong arguments '"Male"': org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String org.udf_drools_poc.UDFDrools.evaluate(java.lang.String)

    kSession.insert(person);
    kSession.fireAllRules();

person和ServiceSerializer都是序列化的。
此代码在本地运行良好(从ide执行时),但在通过配置单元执行时引发以下错误:

Wrong arguments '"Male"': org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String org.udf_drools_poc.UDFDrools.evaluate(java.lang.String)

使用以下脚本调用udf:

create temporary function genderMap as 'org.udf_drools_poc.UDFDrools';
select genderMap("Male");

有什么建议吗?
谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题