检查spark中两个不同数据帧中两列的条件

时间:2016-05-04 14:02:16

标签: scala apache-spark

假设数据框中有一列,并且另一个数据框中有类似的架构列。如何检查列中包含的值是否相同而不加入它们,因为没有公共属性。

DF1
serial_nm
ABC
MNC
pqr

DF2
ser_nm
HGF
MNC
UIO
PQR
lok

我想要第三个DF3作为输出 的 DF3
MNC
pqr

我试过这个

List<int> array = new List<int>();
array.Add(4,5,3)
array minus 1;
for (int z = 0; z < N; z++)
{
    Console.WriteLine(array[z]);
}
Console.ReadLine();

但它不起作用

请帮助
感谢.. !!

1 个答案:

答案 0 :(得分:1)

我相信你可以使用加入。考虑像这样使用它:

val DF3 = DF1.join(DF2, DF1("serial_nm") === DF2("ser_nm"))

val DF3 = DF1.join(DF2).where(DF1("serial_nm") === DF2("ser_nm"))

这两种方法都是等价的。

注意:为了避免模糊列的问题,一个选项是在连接之前重命名它们:

val df2_renamed = DF2
  .withColumnRenamed("mnc", "df2_mnc")
  .withColumnRenamed("pqr", "df2_pqr")