热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在DataFrame.withColumn中,如何使用列的值作为第二个参数的条件?

如何解决《在DataFrame.withColumn中,如何使用列的值作为第二个参数的条件?》经验,为你挑选了1个好方法。

如果我有一个名为df的DataFrame看起来像:

+---+---+
| a1+ a2|
+---+---+
|foo|bar|
|N/A|baz|
+---+---+

我期望从:

val df2 = df.withColumn("a1", when($"a1" == "N/A", $"a2))

df2看起来像:

+---+---+
| a1+ a2|
+---+---+
|foo|bar|
|baz|baz|
+---+---+

但是我得到了:

error: type mismatch;
 found   : Boolean
 required: org.apache.spark.sql.Column

因此,听起来我需要一个在DataFrame的withColumn方法中产生其值的Column方法。

有任何类似的事情,或者其他方法来用当前列的值有条件地填充withColumn的替换参数吗?



1> Psidom..:

您需要===代替==

val df2 = df.withColumn("a1", when($"a1" === "N/A", $"a2").otherwise($"a1"))
// df2: org.apache.spark.sql.DataFrame = [a1: string, a2: string]

df2.show
+---+---+
| a1| a2|
+---+---+
|foo|bar|
|baz|baz|
+---+---+


推荐阅读
author-avatar
小么么和
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有