pyspark converte linha para json com valores nulos

Objetivo Para um quadro de dados com esquema

id:string
Cold:string
Medium:string
Hot:string
IsNull:string
annual_sales_c:string
average_check_c:string
credit_rating_c:string
cuisine_c:string
dayparts_c:string
location_name_c:string
market_category_c:string
market_segment_list_c:string
menu_items_c:string
msa_name_c:string
name:string
number_of_employees_c:string
number_of_rooms_c:string
Months In Role:integer
Tenured Status:string
IsCustomer:integer
units_c:string
years_in_business_c:string
medium_interactions_c:string
hot_interactions_c:string
cold_interactions_c:string
is_null_interactions_c:string

Quero adicionar uma nova coluna que seja uma string JSON de todas as chaves e valores para as colunas. Eu usei a abordagem neste postPySpark - Converta em JSON linha por linha e perguntas relacionadas. Meu código

df = df.withColumn("JSON",func.to_json(func.struct([df[x] for x in small_df.columns])))

Estou tendo um problema:

Questão Quando qualquer linha tem um valor nulo para uma coluna (e meus dados têm muitos ...), a string Json não contém a chave. I.e. se apenas 9 das 27 colunas tiverem valores, a string JSON possui apenas 9 chaves ... O que eu gostaria de fazer é manter todas as chaves, mas para os valores nulos basta passar uma string vazia ""

Alguma dica?

questionAnswers(1)

yourAnswerToTheQuestion