在Scala中使用joinWith时如何仅返回左侧

在Scala中使用joinWith时如何仅返回左侧,scala,apache-spark-sql,apache-spark-dataset,Scala,Apache Spark Sql,Apache Spark Dataset,所以我有以下内容,我尝试使用joinWith,我只想要左边的内容,然后我想在这个连接之后运行一个函数,我正在做下面的工作,但它不起作用 (为了清晰起见,在现实生活中,左侧有更多的附加列,这就是为什么我在连接后运行函数的原因,仅将此作为一个基本示例) 在我尝试获取左侧之前,内部联接的输出如下所示,在这种情况下,我只需要左侧,但当我通过.transform()传递函数时,它表示需要的是数据集[(行,行)] 如果我理解正确,您不需要实际的联接,而是通过df2中的id进行过滤的df1。 查看left\u

所以我有以下内容,我尝试使用joinWith,我只想要左边的内容,然后我想在这个连接之后运行一个函数,我正在做下面的工作,但它不起作用

(为了清晰起见,在现实生活中,左侧有更多的附加列,这就是为什么我在连接后运行函数的原因,仅将此作为一个基本示例)

在我尝试获取左侧之前,内部联接的输出如下所示,在这种情况下,我只需要左侧,但当我通过
.transform()
传递函数时,它表示需要的是数据集[(行,行)]


如果我理解正确,您不需要实际的联接,而是通过
df2
中的id进行过滤的
df1
。 查看
left\u semi
join类型。如果您将代码更改为
df1.joinWith(df2,df1(“id”)==df2(“id”),“left_-semi”)
,您应该得到如下内容

LEFT SEMI JOIN
+---+----------+
| id|value_left|
+---+----------+
|  3|        A3| 
|  4|        A4|
更多信息可在此处找到-

此外,您还可以
joined\u df.drop(“value\u right”)

INNER JOIN
+---+----------+-----------+
| id|value_left|value_right|
+---+----------+-----------+
|  3|        A3|         A3|
|  4|        A4|       A4_1|
|  4|        A4|         A4|
+---+----------+-----------+
LEFT SEMI JOIN
+---+----------+
| id|value_left|
+---+----------+
|  3|        A3| 
|  4|        A4|