python-3.x 带有regexp_replace函数的pyspark Dataframe

y53ybaqx  于 2023-01-06  发布在  Python
关注(0)|答案(1)|浏览(110)

我有一个 Dataframe df=

name  state
null   CA
Julia  null
Robert null
null   NJ

其中name和state列都是string列
我想将名称列中的字符串null替换为None。
当我尝试使用替换函数如下,它转换所有值从名称列到无,因为它不是预期的结果,我只想'空'值到被转换到无

df = df.withColumn('name', regexp_replace('name', 'null', None))

我得到的输出如下,我猜它无法识别'空';

name  state
null   CA
null   null
null   null
null   NJ

如何解决这一问题?

kwvwclae

kwvwclae1#

这样就行了

df.withColumn("name", F.when((F.col('name') == "null"), None)).show()

字符串"null"过滤器的输出(因为None的字符串表示也为null,仅输出可能会产生误导)

df.filter(F.col('name').eqNullSafe("null")).show()
df.withColumn("name", F.when((F.col('name') == "null"), None)).filter(F.col('name').eqNullSafe("null")).show()

相关问题