![](/img/trans.png)
[英]Filter DF using the column of another DF (same col in both DF) Spark Scala
[英]spark add a col to dataframe with condtions on another df
我有以下问题:我想向数据RealCity
A添加一个RealCity
列,当City值为'noClue'时,我要使用d键从df B中进行选择,以获取City。
表A:
+---------+--------+
| Key | City|
+---------+--------+
|a | PDX |
+---------+--------+
|b | noClue |
表B:
+---------+--------+
| Key | Name |
+---------+--------+
|c | SYD |
+---------+--------+
|b | AKL |
我想使用.withColumn
和when
但无法通过这种方式选择另一个表(表B)的值。 什么是这样做的好方法? 非常感谢!
假设您有两个dataframes
A:
+---+------+
|key|City |
+---+------+
|a |PDX |
|b |noClue|
+---+------+
B:
+---+----+
|key|Name|
+---+----+
|a |SYD |
|b |AKL |
+---+----+
您可以简单地join
它们与公用Key
withColumn
并when
功能为
val finalDF = A.join(B, Seq("Key"), "left").withColumn("RealCity", when($"City" === "noClue", $"Name").otherwise($"City")).drop("Name")
你应该有最终输出为
+---+------+--------+
|key|City |RealCity|
+---+------+--------+
|a |PDX |PDX |
|b |noClue|AKL |
+---+------+--------+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.