如何在大量数据框列上应用我的 single_space 函数?

How to I apply my single_space function on a large number of dataframe columns?

我正在使用一个函数将 pyspark 数据帧中的所有空格转换为单个空格。我可以使用 .withcolumn 将此函数单独应用到单独的列。现在,我有大约 120 列混合类型,我只想将此函数应用于字符串列。为此,我创建了一个仅包含字符串类型列名称的列表。如何使用 withcolumn 将此数组提供(应用、映射?)到我的函数?

import quinn

#example data
data = { 
    'fruits': ["apples", "    banana", "cherry"],
    'veggies': [1, 0, 1],
    'meat': ["pig", "cow", "   chicken  "]}

df = pd.DataFrame(data)
ddf = spark.createDataFrame(df)

mylist_column= [item[0] for item in df.dtypes if item[1].startswith('string')]
df= df.withColumn('fruits', quinn.single_space('fruits'))
for element in mylist_column:
   ddf= ddf.withColumn(element, quinn.single_space(element))