如何为 python/pyspark 数据帧中的所有列添加后缀和前缀

新手上路,请多包涵

我在 pyspark 中有一个超过 100 列的数据框。我想要做的是为我想在列名的开头和列名的结尾添加反勾号 (`) 的所有列名。

例如:

 column name  is testing user. I want `testing user`

有没有在 pyspark/python 中执行此操作的方法?当我们应用代码时,它应该返回一个数据框。

原文由 user7590556 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 750
2 个回答

您可以使用 withColumnRenamed 数据框的方法结合 na 创建新的数据框

df.na.withColumnRenamed('testing user', '`testing user`')

编辑:假设你有列列表,你可以这样做 -

 old = "First Last Age"
new = ["`"+field+"`" for field in old.split()]
df.rdd.toDF(new)

输出 :

 DataFrame[`First`: string, `Last`: string, `Age`: string]

原文由 Pushkr 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 python 中使用列表理解。

 from pyspark.sql import functions as F

df = ...

df_new = df.select([F.col(c).alias("`"+c+"`") for c in df.columns])

此方法还为您提供了在 alias() 函数中添加自定义 Python 逻辑的选项,例如: "prefix_"+c+"_suffix" if c in list_of_cols_to_change else c

原文由 knanne 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题