shade com.google.protobuf.*
according https://scalapb.github.io/docs/sparksql/
"Spark ships with an old version of Google's Protocol Buffers runtime that is not
compatible with the current version. Therefore, we need to shade our copy of the
Protocol Buffer runtime."
"Spark 3 also ships with an incompatible version of scala-collection-compat.",
although our unit test show passes, without any changes, but we experienced exceptions
when trying to convert protobuf to json using json4s. Even trying to shade scala-collection-compat
doesn't help. here we did not shade the scala-collection-compact
instead of directly cast categorical data type to string,
the logic is changed to check the data type first before extract the value.
Also catch the unexpected exception to associate the feature with exception.
Many cases, where spark considered the data is string, if it is no explicitly cast to decimals.
this will help debugging which feature is the issue.
…icts