Как обновить схему фрейма после операции Map.apply? - PullRequest
0 голосов
/ 13 декабря 2018

Я вижу очень странное поведение оператора AWS Glue Map.Во-первых, похоже, что вы должны вернуть DynamicRecord, и, похоже, нет способа создать новый DyanmicRecord.Пример, приведенный в документации AWS Glue Map, редактирует переданную DynamicRecord. Однако, когда я редактирую DynamicRecord, переданный в схему, становится просто root, и результирующий набор данных при выводе через Spigot является исходным набором данных, переданным в Map.

Кто-нибудь заставил оператора Map работать?Если да, можете ли вы предоставить фрагмент.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Возвращаете ли вы обновленную запись?

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

0 голосов
/ 14 декабря 2018

Попробуйте преобразовать DynamicDataframe в искровой кадр данных на .toDF()

...