pyspark添加布尔列和句柄null

gcuhipw9  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(165)

假设我有一个包含df的null,如下所示:

In [45]: df2.show()
+-----+----+
|name1|   v|
+-----+----+
| john| 1.0|
| null| 4.0|
|  meh|null|
+-----+----+

我想添加一个标签(用于ml培训),这样 label 当且仅当 name1john . 这就是我要做的:

In [47]: df3 = df2.withColumn('label', (df2.name1=='john'))
In [48]: df3.fillna(False, ['label']).show()
+-----+----+---------+
|name1|   v|    label|
+-----+----+---------+
| john| 1.0|     true|
| null| 4.0|    false|
|  meh|null|    false|
+-----+----+---------+

有没有更惯用的方法?我发现 df2.withColumn('label', (df2.name1=='john') & ~df2.name1.isNull()) 有效,尽管我不明白为什么有效。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题