pySpark 3.0如何修剪所有列的空格[重复]
Posted
技术标签:
【中文标题】pySpark 3.0如何修剪所有列的空格[重复]【英文标题】:pySpark 3.0 how to trim spaces for all columns [duplicate] 【发布时间】:2021-02-26 07:18:05 【问题描述】:对于这个数据框:如何在循环中修剪每一列的所有前导和尾随空格?
df = spark.createDataFrame(
[
(' a', '10 ', ' b '), # create your data here, be consistent in the types.
],
['col1', 'col2','col3'] # add your columns label here
)
df.show(5)
我知道如何通过像下面那样指定每一列来做到这一点,但需要对循环中的所有列都这样做,因为在实际情况下,我不知道列名和列的数量。
from pyspark.sql.functions import trim
df = df.withColumn("col2", trim(df.col2))
df.show(5)
【问题讨论】:
【参考方案1】:您可以使用列表推导将trim
应用于所有列:
from pyspark.sql.functions import trim, col
df2 = df.select([trim(col(c)).alias(c) for c in df.columns])
【讨论】:
它应该可以工作。 PS 对于 spark 2.x,应该使用 trim(col(c))。参考***.com/questions/52596712/… @thotwielder 是的,你是对的,我已经编辑了我的答案来纠正这个问题。以上是关于pySpark 3.0如何修剪所有列的空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 LibreOffice 或 Google 表格中修剪整列的起始空间?