Description
Currently `PartitioningAwareFileIndex` accepts an optional parameter `userPartitionSchema`. If provided, it will combine the inferred partition schema with the parameter.
However,
1. to get the inferred partition schema, we have to create a temporary file index.
2. to get `userPartitionSchema`, we need to combine inferred partition schema with `userSpecifiedSchema`
Only after that, a final version of `PartitioningAwareFileIndex` is created.
This can be improved by passing `userSpecifiedSchema` to `PartitioningAwareFileIndex`.
With the improvement, we can reduce redundant code and avoid parsing the file partition twice.