请教大家个大数据计算MaxCompute问题: 对dataframe 列重命名报错:
AttributeError: 'DataFrame' object has no attribute 'rename'
脚本:
from odps import options
from odps.df import DataFrame
mers = DataFrame(o.get_table('dim_mer_mer_info'))
print(mers.head(5))
mers.rename(columns={"mer_id":"mer_id_abc"},inplace=True)
print(mers.head(5))
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据你提供的脚本,似乎你正在使用MaxCompute中的DataFrame对象进行列重命名操作。但是,MaxCompute的DataFrame对象(odps.df.DataFrame)并没有rename
方法,这就解释了为什么会出现错误信息:AttributeError: 'DataFrame' object has no attribute 'rename'
。
在MaxCompute中,要对DataFrame的列进行重命名,你可以使用rename_columns
方法。下面是一个修改后的示例:
from odps import options
from odps.df import DataFrame
mers = DataFrame(o.get_table('dim_mer_mer_info'))
print(mers.head(5))
mers = mers.rename_columns([('mer_id', 'mer_id_abc')])
print(mers.head(5))
在上述示例中,我将rename
方法替换为rename_columns
方法,并且传递了一个元组列表来指定要重命名的列。对于每个元组,第一个元素是原始列名,第二个元素是新的列名。
请注意,在MaxCompute中,DataFrame是不可变对象,它的大部分操作都会生成一个新的DataFrame。因此,你需要将rename_columns
的结果赋值给新的DataFrame对象mers
,以便应用列重命名。
看报错是转成的DataFrame没有rename方法,目前PyODPS应该是只兼容文档中写了操作。
https://help.aliyun.com/zh/maxcompute/user-guide/overview-13?spm=a2c4g.11186623.0.0.12ef5425w2eByh,此回答整理自钉群“MaxCompute开发者社区2群”
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。