首页 > 解决方案 > 动态帧上的 AWS Glue 多列重命名

问题描述

文档没有指定是否允许这样做,但是我似乎无法让它工作,而且一遍又一遍地链接多个 DF 也不是很干净。

例如

    df1= RenameField.apply(frame = df, old_name = "col1",new_name = "COL1")
df2= RenameField.apply(frame = df1, old_name = "col2", new_name = "COL2") 

我尝试了一些变体,并基于其他 Glue 转换,我认为以下方法会起作用..

df1 = RenameField.apply[(frame = df, old_name = "col1",new_name = "COL1"),
                       (frame = df, old_name = "col2", new_name = "COL2")]

标签: aws-glue

解决方案


您可以使用applyMappingDynamicFrame 中的方法重命名列和/或转换为另一种数据类型(Scala):

val mappedDynamicFrame = sourceDynamicFrame.applyMapping(
      mappings = Seq(
        ("col1", "string", "column_1", "string"),
        ("col2", "string", "column_2", "string"),
        ("col3", "long", "column_3", "timestamp")
      ),
      caseSensitive = false,
      transformationContext = s"mapped-source"
    )

推荐阅读