更改 spark 数据框列名称

Change spark dataframe columns name

您好,我有一个格式如下的 spark 数据框

| id |  Name | Round_1_id |Round_1_name|Round_2_id|Round_2_name|
| ---| ------|------------|------------|----------|------------|
| 12 |  ABC  | 45         |BCD         | 34       | HRF        |

那里不止两轮,一共10轮

我只想更改圆列名称的列名称如下

id Name Round_1_identity Round_1_Fullname Round_2_identity Round_2_Fullname
12 ABC 45 BCD 34 HRF

只更改圆角的列名

我正在尝试下面的代码,但它不起作用

rename_col={"id":"identity","name":"Fullname"}
for c in df.columns:
  if 'Round' in c:
    for key,value in rename_col.items():
      df1=df.replace(key,value)

请帮助我。这将非常有帮助。

您可以有条件地找到列名并将字符替换为字典中的值以获取新列并使用 withColumnRenamed 重命名列。

见下方代码

rename_col = {"id":"identity", "name":"Fullname"}

for col in df.columns:
    if "Round" in col:
        key = col.split("_")[-1]
        new_col_name = col.replace(key, rename_col[key])
        df = df.withColumnRenamed(col, new_col_name)