迭代Dataframe并在行/列上执行函数

时间:2018-01-23 07:34:47

标签: scala apache-spark dataframe dataset row

我有两个DataFrame,如下所示:

val df1 = Seq((1, 3), (2, 4), (1, 5)).toDF("col1", "col2")
example:
1  30
2  40
1  50

val df2 = Seq((1, 2), (3, 5)).toDF("key1", "key2")
example:
1  2
3  5

我想要做的是遍历df2,获取key2,看看是否df2.key2=df1.col1,如果是,我会在df1添加另一行来创建新的DataFrame。在df2 row1(1,2)的示例中,由于2与df1中的row2 col1匹配,因此我想将另一行(1,4)添加到df1

鉴于上面的输入,预期输出是

      1         30    
      2         40
      1         50      
      1         40  //added this new row as result, as df2.row1.key2 matches df1.row2.col1
   //for df2(1,2), as it matches df1 (2,4)using that join condition, it brings in 4 

我知道我们可以检查是否df1.col("col1")===df2.col("key2"),但我不知道如何遍历df2以在每一行上执行该操作。

0 个答案:

没有答案