首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS胶-替换包含".“的字段名。加上"_“

AWS胶-替换包含".“的字段名。加上"_“
EN

Stack Overflow用户
提问于 2021-03-01 22:50:29
回答 2查看 552关注 0票数 1

我正在试图取代所有的领域,其中“。在字段名中为"_“。

这就是我所拥有的:

代码语言:javascript
复制
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()在处理上述异常时不使用任何参数,发生了另一个异常: Traceback (最近一次调用):

我在这里做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-02 08:17:56

这是我在ETL中使用的一个函数,用于在一步内重命名列。参数是DataFrame和一个字典,如{'old_name_1':'new_name_1'}

代码语言:javascript
复制
def rename_dataframe_columns(df, old_new_column_names):
    if isinstance(old_new_column_names, dict):
        for old_name, new_name in old_new_column_names.items():
            df = df.withColumnRenamed(old_name, new_name)
        return df

    raise ValueError("'old_new_column_names' should be a dict, like {'old_name_1':'new_name_1'}")

一个简单的df.columns就足以创建字典了。

票数 1
EN

Stack Overflow用户

发布于 2021-03-02 01:10:34

回答这个问题:

如果是动态框架,则转换为数据帧。columns

  • Convert

  • 使用df.columns替换df.columns返回到动态框架。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66430842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档