首页 > 解决方案 > AWS Glue - 替换包含“。”的字段名称 和 ”_”

问题描述

我正在尝试替换所有具有“。”的字段。在字段名称中添加到“_”。

这就是我所拥有的:

def apply_renaming_mapping(df):
    """Given a dynamic data frame, if the field contains ., replace with _"""
    # construct renaming mapping for ApplyMapping
    mappings = list()
    # for field in df.schema.fields:
    for name, dtpye in df.dtypes:
        if '.' in name:
            mappings.append((name, dtype, name.replace('.', '_'), dtype))
    # apply mapping
    reanmed= ApplyMapping(frame=df, mappings=mappings)
    return renamed

但我想我错过了一些作品。不断收到以下错误:在relationalize_and_write中重命名= apply_renaming_mapping(m_df.toDF()) File apply_renaming_mapping reanmed= ApplyMapping(frame=df, mappings=mappings) TypeError: ApplyMapping() takes no arguments 在处理上述异常期间,发生了另一个异常:回溯(最近一次通话最后):

我在这里做错了什么?

标签: pythonaws-glueaws-glue-spark

解决方案


回答这个问题:

  1. 如果是动态帧,则转换为数据帧。
  2. 使用 df.columns 替换列
  3. 转换回动态帧。

推荐阅读