AWS Glue 将字符串值从 postgres 转换为 json 数组

Posted

技术标签:

【中文标题】AWS Glue 将字符串值从 postgres 转换为 json 数组【英文标题】:AWS Glue transform string value from postgres to json array 【发布时间】:2021-07-13 11:11:34 【问题描述】:

我是 AWS Glue 和 pyspark 的新手。我在 RDS 中有一个表,其中包含一个 varchar 字段id。 我想将id 映射到输出 json 中的字符串字段,该字段位于 json 数组字段中(比如说newId):

“来源”:[ “newId”:“1234asdf” ]

如何使用 AWS Glue 作业的 pyspark 脚本中定义的转换来实现这一点。

【问题讨论】:

那么对于表中的每一行,您要创建一个键值对“newId”:“some_value”,其中some_value 是该行的“id”列中的值?您是否打算为每行创建的对象添加更多字段?有什么理由不让集合成为根,而不是将集合放在“源”集合对象下? 【参考方案1】:

使用 AWS Glue Map Transformation 将字符串字段映射到目标中 JSON 数组内的字段。

NewFrame= Map.apply(frame=OldFrame, f=map_fields)

并像这样定义一个函数map_fields

def map_fields(rec):
    rec["sources"] = 
    rec["sources"] = ["newID": rec["id"]]
    del rec["id"]
    return rec

请务必按照del rec["uid"] 中的操作删除原始字段,否则逻辑不起作用。

【讨论】:

以上是关于AWS Glue 将字符串值从 postgres 转换为 json 数组的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue PySpark 无法计算记录

AWS Glue 作业输入参数

AWS Glue ETL Spark- 字符串到时间戳

连接到 SQL Server 实例 AWS Glue

在 AWS Glue 中转换其他列的数据类型时,某些列变为空

可以将哪些选项传递给 AWS Glue DynamicFrame.toDF()?