如何在 Map.apply 操作后更新 Frame 的架构?
How to update the Frame's schema after Map.apply operation?
我发现 AWS Glue Map 运算符有一些非常奇怪的行为。首先,看起来您必须 return 一个 DynamicRecord 并且似乎没有办法创建一个新的 DyanmicRecord。 AWS Glue Map 文档中的示例编辑了传入的 DynamicRecord。但是,当我编辑传入架构的 DynamicRecord 时,它变成 root
并且通过 Spigot 输出的结果数据集是传递到 Map 的原始数据集。
有没有人让地图运算符起作用?如果可以,您能否提供一个片段。
尝试通过 .toDF()
将 DynamicDataframe
转换为 spark 数据帧
您要返回更新后的记录吗?
def MergeAddress(rec):
rec["Address"] = {}
rec["Address"]["Street"] = rec["Provider Street Address"]
rec["Address"]["City"] = rec["Provider City"]
rec["Address"]["State"] = rec["Provider State"]
rec["Address"]["Zip.Code"] = rec["Provider Zip Code"]
rec["Address"]["Array"] = [rec["Provider Street Address"], rec["Provider City"], rec["Provider State"], rec["Provider Zip Code"]]
del rec["Provider Street Address"]
del rec["Provider City"]
del rec["Provider State"]
del rec["Provider Zip Code"]
return rec
mapped_dyF = Map.apply(frame = dyF, f = MergeAddress)
mapped_dyF.printSchema()
https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-map.html
我发现 AWS Glue Map 运算符有一些非常奇怪的行为。首先,看起来您必须 return 一个 DynamicRecord 并且似乎没有办法创建一个新的 DyanmicRecord。 AWS Glue Map 文档中的示例编辑了传入的 DynamicRecord。但是,当我编辑传入架构的 DynamicRecord 时,它变成 root
并且通过 Spigot 输出的结果数据集是传递到 Map 的原始数据集。
有没有人让地图运算符起作用?如果可以,您能否提供一个片段。
尝试通过 .toDF()
DynamicDataframe
转换为 spark 数据帧
您要返回更新后的记录吗?
def MergeAddress(rec):
rec["Address"] = {}
rec["Address"]["Street"] = rec["Provider Street Address"]
rec["Address"]["City"] = rec["Provider City"]
rec["Address"]["State"] = rec["Provider State"]
rec["Address"]["Zip.Code"] = rec["Provider Zip Code"]
rec["Address"]["Array"] = [rec["Provider Street Address"], rec["Provider City"], rec["Provider State"], rec["Provider Zip Code"]]
del rec["Provider Street Address"]
del rec["Provider City"]
del rec["Provider State"]
del rec["Provider Zip Code"]
return rec
mapped_dyF = Map.apply(frame = dyF, f = MergeAddress)
mapped_dyF.printSchema()
https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-map.html