Apache Spark 对于DateType字段,fillna无法将空值替换为给定的日期值

qxgroojn  于 2023-05-29  发布在  Apache
关注(0)|答案(1)|浏览(191)

我创建了一个dataframe如下:-

给定数据框架的架构如下:-

我想替换DateType字段“customer_from”中的空值。但下面的查询不起作用

df.na.fill({"customer_from":date.now()}).show()

其中,na.fill适用于其他类型列,如“amount_type”,即a DoubleType列。
为什么na.fill不适用于DateType列,而适用于spark中的其他列类型?

4nkexdtk

4nkexdtk1#

检查API Reference,据说na.fill只接受int,float,boolean和string作为替换类型。

我不知道为什么它不接受其他类型,但你可以使用when函数来代替:

df.withColumn('customer_from',
  F.when(F.expr('customer_from IS NULL'), DEFAULT_DATE).otherwise(F.col('customer_from')))

作为DEFAULT_DATE您要用来替换空值的日期。

相关问题