Hi Patrick,
> I'm having an issue evaluating my PMML document
> using the Pyjnius library.
>
You mean the "PyJNIus backend of the JPMML-Evaluator Python package", right.
From what I can see, the raised exception does not indicate any
malfunction in the Python-Java-Python connectivity layer - it's a PMML
document issue (explanation below).
Feel free to replace the PyJNIus backend with another one - JPype or
Py4J. You would still see the same exception message, but it would be
enclosed in a different backend-specific exception class.
> The error comes when I try to evaluate a single list of arguments.
> I double checked all the datatypes and optypes, and they look correct.
The exception message: "Categorical value cannot be used in comparison
operations".
This means that a PMML internal opType sanity check has failed. This
check is typically performed in two places - inside the Apply element
when performing comparison operations, or in decision tree/rule set
models where the business logic involves evaluating lot of Predicate
elements.
EDIT: Looks like you figured it out yourself.
> Can you please suggest how to debug this?
>
No effective way of debugging a "live" PMML engine for more info. It's
a hidden sanity/data consistency check, which is supposed to never
trigger.
You should compare your PMML documents - the older "works fine"
version vs. the newer "doesn't work" version.
Pay attention to differences under the DataDictionary element, around
DataField@opType elements. Some "categorical" value has flipped to
"continuous" there.
Maybe you changed something in your Python data science script
recently? Omitted a DataFrame.astype(str) call somewhere?
VR