我想使用 pyspark 根据索引号更改 json 数组对象中的值

I want to change value in json array object based on index number using pyspark

我想使用 pyspark 根据索引号更改 json 数组对象中的值,然后将使用 columnName 更新数据框列名称:

输入:

jsonArray = [
    {
        "index": 1,
        "columnName":"Names"
    },
        {
        "index": 2,
        "columnName":"City"
    }
    ]

输出:

jsonArray = [
    {
        "index": 1,
        "columnName":"titles"
    },
        {
        "index": 2,
        "columnName":"countries"
    }
    ]

函数头:

def renameColumn(index, newName, df):
    return df_with_new_column_names

如果我正确理解了您的要求,请尝试以下操作-

for i in range(len(jsonArray)):
  if jsonArray[i]['index']==1:
    jsonArray[i]['columnName'] = "titles"
  else:
    jsonArray[i]['columnName'] = "countries"
  
print(jsonArray)

输出-

[{'index': 1, 'columnName': 'titles'}, {'index': 2, 'columnName': 'countries'}]
def jsonColumnName(jsonArray, indx, newName):
   for jsonObj in jsonArray:
       if jsonObj['index'] == indx:
           jsonObj['Field_Name'] = newName
   return jsonArray