gpt4 book ai didi

apache-spark - 动态重命名 PySpark DataFrame 中的多个列

转载 作者:行者123 更新时间:2023-12-04 04:56:42 26 4
gpt4 key购买 nike

我在 pyspark 中有一个数据框,它有 15 列。

列名是 id , name , emp.dno , emp.sal , state , emp.city , zip .....

现在我想替换具有 '.' 的列名在他们到 '_'
'emp.dno''emp_dno'
我想动态地做

我怎样才能在 pyspark 中实现这一目标?

最佳答案

您可以使用类似于 this great solution from @zero323 的内容。 :

df.toDF(*(c.replace('.', '_') for c in df.columns))

或者:
from pyspark.sql.functions import col

replacements = {c:c.replace('.','_') for c in df.columns if '.' in c}

df.select([col(c).alias(replacements.get(c, c)) for c in df.columns])
replacement字典然后看起来像:
{'emp.city': 'emp_city', 'emp.dno': 'emp_dno', 'emp.sal': 'emp_sal'}

更新:

if I have dataframe with space in column names also how do replace both '.' and space with '_'


import re

df.toDF(*(re.sub(r'[\.\s]+', '_', c) for c in df.columns))

关于apache-spark - 动态重命名 PySpark DataFrame 中的多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41655158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com