如何替换PySpark DataFrame列名中的指定字符串?
移除PySpark DataFrame列名中的表名前缀
要去掉列名里的Table.前缀,核心是对DataFrame的列名字符串做替换,再重新给DataFrame命名,具体实现如下:
方法一:精准替换指定前缀
如果确定所有列名的前缀都是固定的Table.,直接遍历列名做字符串替换即可:
# 生成新列名列表:替换掉每个列名中的"Table." new_col_names = [col.replace("Table.", "") for col in df.columns] # 用新列名重命名DataFrame df = df.toDF(*new_col_names)
方法二:通用分割取后缀(适配任意表名前缀)
如果你的表名前缀不固定(比如可能是User.、Order.这类不同前缀),可以按.分割列名,取最后一部分:
# 按点分割列名,取最后一段作为新列名 new_col_names = [col.split(".")[-1] for col in df.columns] # 重命名DataFrame df = df.toDF(*new_col_names)
验证示例
假设原DataFrame的列名是["Table.col1", "Table.col2", "Table.col3"],执行上述代码后,列名会变为["col1", "col2", "col3"]。
内容的提问来源于stack exchange,提问作者user3486773
相关产品推荐
相关产品推荐

