AWS Glue - ETL - Преобразование данных SQL в массив JSON - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь использовать сервис AWS Glue для чтения данных из экземпляра RDS, извлечения данных и сохранения их в корзине S3 в файле JSON, чтобы я мог использовать эти данные в каком-то другом месте.

Я могу установить соединение с базой данных, и сканер может заполнить таблицы.

tags = glueContext.create_dynamic_frame.from_catalog(database = "search-rds", table_name = "glue_search_db_tag")
instances = glueContext.create_dynamic_frame.from_catalog(database = "search-rds", table_name = "glue_search_db_instance")
classes = glueContext.create_dynamic_frame.from_catalog(database = "search-rds", table_name = "glue_search_db_class")

tagdetails = Join.apply(classes, Join.apply(tags, instances, 'parent', 'noderef'), 'noderef', 'class')


glueContext.write_dynamic_frame.from_options(frame = tagdetails, connection_type = "s3", connection_options = {"path": destinationbucket},format = "json")

Используя приведенный выше код, я могу записать данные в корзину S3, но формат файла не тот, который я хочу.

{"full_name":"TAG1_FULLNAME","parent":12340,"context":0,"noderef":12340}
{"full_name":"TAG2_FULLNAME","parent":12340,"context":0,"noderef":12341}
{"full_name":"TAG3_FULLNAME","parent":12340,"context":0,"noderef":12342}
{"full_name":"TAG4_FULLNAME","parent":12340,"context":0,"noderef":12343}

То, что я хочу, - что-то вродеэто,

[{"full_name":"TAG1_FULLNAME","parent":12340,"context":0,"noderef":12340},
{"full_name":"TAG2_FULLNAME","parent":12340,"context":0,"noderef":12341},
{"full_name":"TAG3_FULLNAME","parent":12340,"context":0,"noderef":12342},
{"full_name":"TAG4_FULLNAME","parent":12340,"context":0,"noderef":12343}]

Есть ли вообще я могу это сделать?Любые предложения будут высоко оценены, или, пожалуйста, дайте мне знать, если я что-то пропустил здесь

...