For an array of arrays of arrays, ...
For an array of arrays of arrays, ... get the final element type at the bottom of the array
An array data type from a Spark dataframe schema
A non-array data type at the bottom of array nesting
Generate a unique column name
Generate a unique column name
A prefix to use for the column name
An optional schema to validate if the column already exists (a very low probability)
A name that can be used as a unique column name