We recently upgraded spark to 2.2.0 in our application and this brings in Jackson 2.6.5 jars in the runtime.
But we have other services that need Jackson 2.8.6(due to Elastic 5.5.0) the service has a manifest which refers to Jackson 2.8.6 from the application's lib folder.
So there are two versions of Jackson jars loaded in the runtime and spark is picking a wrong one (2.8.6 from lib folder instead of 2.6.5 from its own jars folder)
On windows the version picked is the right one although both versions are still loaded in the runtime.
But it fails on Linux.
How do we resolve this?