Map.apply操作后如何更新框架的架构?

时间:2018-12-13 18:13:40

标签: aws-glue

我从AWS Glue Map运算符中看到了一些非常奇怪的行为。首先,看起来您必须返回DynamicRecord,并且似乎没有创建新DyanmicRecord的方法。 AWS Glue Map文档中的示例将编辑传入的DynamicRecord。但是,当我编辑在架构中传入的DynamicRecord时,其名称仅为root,并且通过Spigot输出的结果数据集是传递到Map的原始数据集。

有人让Map操作员工作吗?如果可以,您可以提供一个摘要。

2 个答案:

答案 0 :(得分:1)

尝试通过DynamicDataframe.toDF()转换为Spark数据帧

答案 1 :(得分:0)

您要返回更新的记录吗?

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