尝试这样的事情:
from pyspark.sql.functions import col, lower, trimexprs = [ lower(trim(col(c))).alias(c) if t == "string" else col(c) for (c, t) in df.dtypes]df.select(*exprs)
与您当前的解决方案相比,此方法有两个主要优点:
- 它仅需要单个投影(没有增长的谱系,这很可能导致SO),而不是每个字符串列的投影。
- 它仅直接 *** 作内部表示,而没有将数据传递给Python(
BatchPythonProcessing
)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)