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

Posted

技术标签:

【中文标题】如何在大量数据框列上应用我的 single_space 函数? [关闭]【英文标题】:How to I apply my single_space function on a large number of dataframe columns? [closed] 【发布时间】:2020-01-27 10:36:49 【问题描述】:

我正在使用一个函数将 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'))

【问题讨论】:

mylist_column上使用for循环 好吧,该死的......这个星期一早上我一定不太清醒。 不使用 for 循环在分布式环境中是一个约束,但在惰性执行方案中,这只是计划好的。 【参考方案1】:
for element in mylist_column:
   ddf= ddf.withColumn(element, quinn.single_space(element))

【讨论】:

以上是关于如何在大量数据框列上应用我的 single_space 函数? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pyspark 数据框列上拟合内核密度估计并将其用于创建具有估计的新列

特定数据框列上的 R Apply() 函数

如何使用 Spark 数据框列上的函数或方法使用 Scala 进行转换

Pyspark - 在作为列表的 spark 数据框列上使用 reducebykey

熊猫数据框列上的子字符串

PySpark:根据另一列的顺序收集数据框列上的集合