Автоматическое создание кода PySpark с использованием конфигурацииPython

Программы на Python
Ответить
Anonymous
 Автоматическое создание кода PySpark с использованием конфигурации

Сообщение Anonymous »


Я хочу создать генератор кода pyspark на основе конфигурации. Допустим, я предоставляю следующую конфигурацию:

{ "a_type": "myBody.string-to-json.myList.array-explode.aType", "a_id": "myBody.string-to-json.myList.array-explode.aId", "b_type": "myBody.string-to-json.myList.array-explode.z.bType", "b_id": "myBody.string-to-json.myList.array-explode.z.bId", "c_amount": "myBody.string-to-json.myList.array-explode.amount.cAmount", "c_code": "myBody.string-to-json.myList.array-explode.amount.cCode", "d_id": "myBody.string-to-json.myList.array-explode.Details.dId", "d_version": "myBody.string-to-json.myList.array-explode.Details.dVersion", "created_at": "createAt" } со следующими условиями:
[*]Предположим, у меня уже есть базовая таблица в каталоге с полями «myBody» и «createdAt». [*]Я хочу предоставить несколько плагинов, которые действуют как преобразователи. В приведенной выше конфигурации string-to-json("myBody") должен сглаживать строковый JSON, а array-explode("myList") должен разбивать элементы массива. [*]Должна быть возможность обрабатывать отсутствующие ключи JSON (заполняться как NULL) и не давать сбоев. (Если я пишу приведенную выше конфигурацию для извлечения b_id, но его нет в базовой таблице, она не должна завершиться ошибкой pyspark «Отсутствует ключ JSON»)
Мои исходные данные сложны:

{ "createAt": "01.01.2024", "myBody": "{\"myList\":[{\"amount\": {\"cAmount\": 69,\"cCode\":\"USD\"},\"aType\": \" НЕИЗВЕСТНО», \"aId\": \"MyID\", \"z\": {\"zId\": \"99\", \"zType\": \"9999\"},\" dId\": \"MyId#99\", \"dVersion\": \"1\"}]}" } Ожидаемые данные будут сгенерированы приведенным выше кодом:
a_type a_id b_type b_id c_amount c_code d_id d_version create_at НЕИЗВЕСТНО МойID NULL NULL 69 долларов США MyId#99 1 01.01.2024
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»