Esta es la contestación más válida que te podemos brindar, pero mírala pausadamente y valora si se adapta a tu trabajo.
Solución:
Puede usar algo similar a esta gran solución de @ zero323:
df.toDF(*(c.replace('.', '_') for c in df.columns))
alternativamente:
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])
los replacement
diccionario entonces se vería así:
'emp.city': 'emp_city', 'emp.dno': 'emp_dno', 'emp.sal': 'emp_sal'
ACTUALIZAR:
si tengo un marco de datos con espacio en los nombres de las columnas también, ¿cómo reemplazo ambos?
'.'
y espacio con'_'
import re
df.toDF(*(re.sub(r'[.s]+', '_', c) for c in df.columns))
Escribió una función fácil y rápida para que la use. ¡Disfrutar! 🙂
def rename_cols(rename_df):
for column in rename_df.columns:
new_column = column.replace('.','_')
rename_df = rename_df.withColumnRenamed(column, new_column)
return rename_df
Si posees alguna desconfianza o disposición de ascender nuestro post te inspiramos escribir un exégesis y con mucho placer lo leeremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)