我正在试图取代所有的领域,其中“。在字段名中为"_“。
这就是我所拥有的:
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 (最近一次调用):
我在这里做错什么了?
发布于 2021-03-02 08:17:56
这是我在ETL中使用的一个函数,用于在一步内重命名列。参数是DataFrame和一个字典,如{'old_name_1':'new_name_1'}
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就足以创建字典了。
发布于 2021-03-02 01:10:34
回答这个问题:
如果是动态框架,则转换为数据帧。columns
https://stackoverflow.com/questions/66430842
复制相似问题