所以我有以下内容,我尝试使用joinWith,我只想要左侧的内容,然后我想在该DataFrame上运行一个函数,我正在执行以下操作,但它不起作用
val df1 = Seq((1, "A1"), (2, "A2"), (3, "A3"), (4, "A4")).toDF("id", "value_left")
val df2 = Seq((3, "A3"), (4, "A4"), (4, "A4_1"), (5, "A5"), (6, "A6")).toDF("id", "value_right")
val transformedDf: Dataset[Row] = df1
.joinWith(df2, df1("id")===df2("id"),"inner")
.map(_._1)
.transform(anotherFunction)
在我尝试获得左侧之前,内部联接的输出看起来像这样,在这种情况下,我只希望左侧]]
INNER JOIN
+---+----------+-----------+
| id|value_left|value_right|
+---+----------+-----------+
| 3| A3| A3|
| 4| A4| A4_1|
| 4| A4| A4|
+---+----------+-----------+
所以我有以下内容,而我尝试使用joinWith,而我只想在左侧进行操作,然后我想在该DataFrame上运行一个函数,我正在执行以下操作,但它不起作用val。 ..
如果我对您的理解正确,则您不希望实际加入,但需要df1
,并由df2
中的ID过滤。看一下left_semi
联接类型。如果您将代码更改为df1.joinWith(df2, df1("id")===df2("id"),"left_semi")
,您应该会得到类似