【发布时间】:2020-04-18 20:12:17
【问题描述】:
我想根据特定条件加入两个数据帧是 spark scala。但是,如果 df1 中的行与 df2 中的任何行匹配,则不应尝试将 df1 的同一行与 df2 中的任何其他行匹配。以下是我试图获得的示例数据和结果。
DF1
--------------------------------
Emp_id | Emp_Name | Address_id
1 | ABC | 1
2 | DEF | 2
3 | PQR | 3
4 | XYZ | 1
DF2
-----------------------
Address_id | City
1 | City_1
1 | City_2
2 | City_3
REST | Some_City
Output DF
----------------------------------------
Emp_id | Emp_Name | Address_id | City
1 | ABC | 1 | City_1
2 | DEF | 2 | City_3
3 | PQR | 3 | Some_City
4 | XYZ | 1 | City_1
注意:- REST 就像通配符。任何值都可以等于 REST。
所以在上面的示例中,emp_name "ABC" 可以与 City_1、City_2 或 Some_City 匹配。输出 DF 仅包含 City_1,因为它首先找到它。
【问题讨论】:
-
让问题。 DF2 中 Address_id = 1 的 City_1 和 Address_id = 1 的 City_2 是否正确?
标签: apache-spark-sql