繁体   English   中英

spark将col添加到带有另一个df的条件的数据框

[英]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  | 

我想使用.withColumnwhen但无法通过这种方式选择另一个表(表B)的值。 什么是这样做的好方法? 非常感谢!

假设您有两个dataframes

A:

+---+------+
|key|City  |
+---+------+
|a  |PDX   |
|b  |noClue|
+---+------+

B:

+---+----+
|key|Name|
+---+----+
|a  |SYD |
|b  |AKL |
+---+----+

您可以简单地join它们与公用Key withColumnwhen功能为

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM