apache-spark - pySpark 3.0 如何修剪所有列的空间
问题描述
对于此数据框:如何在循环中修剪每一列的所有前导和尾随空格?
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)
解决方案
您可以使用列表推导应用于trim
所有列:
from pyspark.sql.functions import trim, col
df2 = df.select([trim(col(c)).alias(c) for c in df.columns])
推荐阅读
- rust - 函数调用中的临时对象何时在 Rust 中被删除?
- laravel - 航海者仪表板未显示帖子用户页面
- swift - Swift 无法在循环中推断条件类型
- java - 如何通过您正在扩展的类覆盖方法,同时仍在您正在覆盖的原始类中运行代码?
- java - 我正在使用 MCP,但是当我尝试启动时,它给了我一个 ClassLoader 错误?
- html - application.html.erb 覆盖其他 html 文件
- string - 如何在 Groovy 中截断或删除或删除“:”之后的字符串?
- css - gmail是否阻止了未签名邮件的html样式?
- c - 此代码如何打印用户输入的最后一个单词?
- c# - 当我在不同的 Windows 帐户下运行时,System.Windows.Controls.PrintDialog 引发异常