Я столкнулся с проблемой, когда мне нужно создать набор данных в Java Spark с использованием файла JSON, а затем вывести содержимое в файл паркета.
Проблема, с которой я сталкиваюсь, заключается в том, что файл паркета должен иметь определенную схему, а набор данных из JSON переупорядочивает данные в алфавитном порядке и делает это также для вложенного раздела JSON. Я знаю, что могу использовать select, а затем указать столбцы в нужном порядке. Моя проблема связана с переписыванием вложенных столбцов aNested и bNested специально. Как выбрать вложенные поля, чтобы переупорядочить их в соответствии с конечной необходимой схемой вывода паркета?
Схема набора данных JSON:
|-- a: string (nullable = true)
|-- b: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- aNested: string (nullable = true)
| | |-- bNested: long (nullable = true)
| | |-- cNested: long (nullable = true)
|-- cDate: string(nullable = true)
Требуется Окончательная схема паркета:
|-- a: string (nullable = true)
|-- b: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- cNested: long (nullable = true)
| | |-- aNested: long (nullable = true)
| | |-- bNested: string (nullable = true)
|-- cDate: string(nullable = true)