【发布时间】:2022-06-11 07:22:50
【问题描述】:
对于 DataFrame,我需要将空白字符串(''、' '、...)转换为一组列中的空值。
df = spark.createDataFrame([
('ball', 'medium', '', 'blue'),
('pencil', 'small', '5g', ''),
('paper', ' ', ' ', 'white')
], ['product', 'size', 'weight', 'color'])
我可以为每一列一一做,但是当我们有很多数据框和列时,它就太懒了。
from pyspark.sql.functions import when, trim, col
df = df \
.withColumn('size', when(trim(col('size')) == '', None).otherwise(col('size'))) \
.withColumn('weight', when(trim(col('weight')) == '', None).otherwise(col('weight'))) \
.withColumn('color', when(trim(col('color')) == '', None).otherwise(col('color')))
我应该如何以更通用的方式进行转换,避免代码复制?
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql databricks