修剪 PySpark 中名称之间的额外空格

Posted

技术标签:

【中文标题】修剪 PySpark 中名称之间的额外空格【英文标题】:Trim addtional whitespace between the names in PySpark 【发布时间】:2020-06-30 17:03:51 【问题描述】:

如何修剪 PySpark 数据框中名称之间的额外空格?

下面是我的数据框

    +----------------------+----------+
    |name                  |account_id|
    +----------------------+----------+
    | abc    xyz    pqr    |     1    |
    | pqm      rst         |     2    |
    +----------------------+----------+

我想要的输出

    +-------------+----------+
    |name         |account_id|
    +-------------+----------+
    | abc xyz pqr |     1    |
    | pqm rst     |     2    |
    +-------------+----------+

我尝试使用 regex_replace,但它完全修剪了空间。还有其他方法可以实现吗?非常感谢!

【问题讨论】:

如果您想用 1 个空格替换 1 个或多个空格,regexp_replace(<your column>,\s+',' ') 应该可以帮到您。 s+ 表示一个或多个空格。 是的,得到了​​输出。感谢您的支持! 【参考方案1】:

我尝试使用 'regexp_replace(,'\s+',' ')' 并得到了输出。

df=df.withColumn("name",regexp_replace(col("name"),'\s+',' '))

输出

+-----------+----------+
| name      |account_id|
+-----------+----------+
|abc xyz pqr|     1    |
|    pqm rst|     2    |
+-----------+----------+

【讨论】:

以上是关于修剪 PySpark 中名称之间的额外空格的主要内容,如果未能解决你的问题,请参考以下文章

pySpark 3.0如何修剪所有列的空格[重复]

修剪列内的额外空白

修剪字符之间的空格

如何在textformfield onchange值上修剪文本

用 PHP 修剪

修剪或删除元素内的前导/尾随空格[重复]