Based on the discussions in the parent ticket (SPARK-22231), add a new dropFields method to the Column class.
This method should allow users to drop a column nested inside a StructType Column (with similar semantics to the existing drop method on Dataset).
It should also be able to handle deeply nested columns through the same API.
This is similar to the withField method that was recently added in
SPARK-31317 and likely we can re-use some of that "infrastructure."
The public-facing method signature should be something along the following lines: